none
Listas externas RRS feed

  • Pregunta

  • Buenas Tardes,

    Cree una lista externa que trae la dat de un sql, lo hice mediante SP Designer, despues de crearla me di cuenta que no se le puede agregar la opción de versionamiento , revise technet y efectivamente n esta para listas externas.

    El problema es que quiero dejar registro de quien cambia datos en esa lista hay forma de hacer eso de genrar un registro ya sea en otra lista??.

    Gracias.

    Coordial Saludo.

    Alvaro Contreras.


    Alvaro Contreras

    jueves, 28 de febrero de 2013 21:19

Respuestas

  • La lista externa, dentro de sus limitaciones, incluye el problema de no poder asociarle Workflow's con lo que la solución tendrá que ser programática.

    Para ello, desde Visual Studio puedes asociarle uneventreceiver que capture los eventos de inserción, actualización y borrado.

    Podrías usar este artículo que escribí si quisieras por ejemplo crearte una lista de SharePoint que te sirviera de "histórico"

    En la MSDN tienes la información al respecto para los event receivers 

    • Parte 1 http://msdn.microsoft.com/en-us/library/gg749858(v=office.14).aspx
    • Parte 2 http://msdn.microsoft.com/en-us/library/gg981880(v=office.14).aspx

    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong

    viernes, 1 de marzo de 2013 14:10
    Moderador
  • Vaya, parece que tampoco es una opción exactamente viable

    Del foro en inglés he sacado el siguiente extracto

    External Lists do not support event receivers. You can validate data in the following ways:

    1. Create InfoPath forms for your External List and place the validation there.
    2. Create a .NET Assembly Connector and place the validation within the method implementation
    3. Create a custom web part to front-end the External List and place the validation there.
    4. Create a Silverlight appliccation to front-end the External List and place the validation there
    5. Create a Custom Field Control for the fields in the BDC Metadata Model and place the validation there

    Con esto saco la conclusión de que hay que establecer un proceso intermedio que sea el que tenga el comportamiento que necesitas. Es decir, podrías crearte una lista de SharePoint que tenga el control de versiones y que, además tenga un event receiver o un workflow que se encargue de procesar esos cambios para sincronizar con la lista externa.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong

    viernes, 1 de marzo de 2013 14:56
    Moderador

Todas las respuestas

  • Buen dia Alvaro:

    La unica solucion seria programatica, te recomendaria implementar la lista externa en visual studio para asi poder tener el control de los eventos de insert/edit y asi poder manejar un versionamiento de los items de la lista en otra lista.

    Espero te sea de ayuda



    Please remember to click "Mark As Answer" if a post solves your problem or "Vote As Helpful" if it was useful. It'll help other users who are visiting your thread for the similar problem.

    Revisando mas a detalle el tema encontre este blog : http://blogs.msdn.com/b/bcs/archive/2010/01/20/using-sharepoint-workflows-with-business-connectivity-services-bcs.aspx donde explican como asociar una lista externa a un workflow de Designer de tal forma que este se dispare en la edicion del item y te permita guardar versiones en otra lista

    Saludos

    viernes, 1 de marzo de 2013 0:43
  • Hola Álvaro.

    Tendrías que buscar una solución mediante desarrollo tal y como te comenta Mauricio.

    Aquí tienes limitaciones de las listas externas

    http://www.sharepointanalysthq.com/2010/07/bcs-external-list-limitations/

    http://www.sharepointdiary.com/2012/03/limitations-of-external-lists-in.html


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong


    viernes, 1 de marzo de 2013 10:18
    Moderador
  • La lista externa, dentro de sus limitaciones, incluye el problema de no poder asociarle Workflow's con lo que la solución tendrá que ser programática.

    Para ello, desde Visual Studio puedes asociarle uneventreceiver que capture los eventos de inserción, actualización y borrado.

    Podrías usar este artículo que escribí si quisieras por ejemplo crearte una lista de SharePoint que te sirviera de "histórico"

    En la MSDN tienes la información al respecto para los event receivers 

    • Parte 1 http://msdn.microsoft.com/en-us/library/gg749858(v=office.14).aspx
    • Parte 2 http://msdn.microsoft.com/en-us/library/gg981880(v=office.14).aspx

    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong

    viernes, 1 de marzo de 2013 14:10
    Moderador
  • Gracias

    Relamente la solución es programaticamente.

    Una pregunta el eventreceiver se puede usar en una lista externa , capturando el item que editan y si no es mucho abusar cual es la diferencia de evento ItemUpdating y ItemUpdated ?


    Alvaro Contreras

    viernes, 1 de marzo de 2013 14:35
  • Vaya, parece que tampoco es una opción exactamente viable

    Del foro en inglés he sacado el siguiente extracto

    External Lists do not support event receivers. You can validate data in the following ways:

    1. Create InfoPath forms for your External List and place the validation there.
    2. Create a .NET Assembly Connector and place the validation within the method implementation
    3. Create a custom web part to front-end the External List and place the validation there.
    4. Create a Silverlight appliccation to front-end the External List and place the validation there
    5. Create a Custom Field Control for the fields in the BDC Metadata Model and place the validation there

    Con esto saco la conclusión de que hay que establecer un proceso intermedio que sea el que tenga el comportamiento que necesitas. Es decir, podrías crearte una lista de SharePoint que tenga el control de versiones y que, además tenga un event receiver o un workflow que se encargue de procesar esos cambios para sincronizar con la lista externa.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong

    viernes, 1 de marzo de 2013 14:56
    Moderador