Espanol Foro

Expand all | Collapse all

Volver abrir oportunidad

  • 1.  Volver abrir oportunidad

    SILVER CONTRIBUTOR
    Posted Jun 13, 2019 12:23 PM
    Buenas tardes, días atras publique un post para ver como podia hacerlo para ocultar el botón "volver abrir oportunidad" de la entidad oportunidad.

    Tal y como comento el compañero Alberto, realize un script que devuelve un valor (true o false) y en Ribbon Workbench capturo el valor y muestro o oculto el boton.

    Hasta aquí todo perfecte, el problema es cuando en el script uso una consulta fetchxml que se me queda el ribbon bloqueado y no deja hacer nada.

    He comprovado que  si en el script comento la linia  "var userRoles = XrmServiceToolkit.Soap.Fetch(fetchXml);", y le paso el parametro directo funciona bien.

    Que puede estar sucediendo?

    Tengo un script similar en otra entidad como oferta, con fetchxml y no me genera ningun problema al interectuar con el boton (mostrar / ocultar).

    A ver si me pueden ayudar.

    Gracias.

    ------------------------------
    Gil Costa
    Distribuciones Boadella, SLU
    B
    ------------------------------


  • 2.  RE: Volver abrir oportunidad

    MICROSOFT MVP
    Posted Jun 14, 2019 02:26 PM
      |   view attached
    Que tal Gil, leí ese post anterior al que te refieres y mi opinión en este caso sería una diferente

    1. Seguir usando lo que ya tienes pero mi recomendación sería que en lugar de usar esa librería de ServiceToolKit usaras llamadas puras de XMLhttprequest directas al api si tu Dynamics es de la versión 2016 en delante, si no usa el servicio odata, (Puedes bajar la solución de Jason Latimmer para crear consultas de forma visual, acá en el blog esta la liga para descarga y es uno de los tips que estan en ese podcast http://macias365.com/10consejosdevs)

    Ahora el contexto de Dynamics ya tiene pre-cargados los ids de los roles, puedes consultarlos desde el js usando Xrm.Page.context.getUserRoles(), esto te regresará un array de ids, compáralos contra los que necesitas, mi recomendación es que compares con ids y no cono nombres, los ids se van iguales en los ambientes si los llevas en la solución que usas para hacer el deploy


    2. Lo que he hecho en otras ocasiones si se que habrá mas de 2 o 3 situaciones de permiso como esta, lo que he hecho es hacer una entidad custom que se llame permisos y de ahí darle o no permisos a Leer, Crear, Actualizar en el rol que tiene el usuario, con esto lo consulto o lo agrego a la condición que tiene por default el botón que necesitas como una condición mas en el Enable del boton con el ribbon y lo puedes apagar y prender sin necesidad de mover código. (Dejo una imagen con el ejemplo)

    Al pendiente de lo que pueda pasar, saludos!

    ------------------------------
    Sergio Macias
    Bisoftt
    monterrey CA
    ------------------------------



  • 3.  RE: Volver abrir oportunidad

    SILVER CONTRIBUTOR
    Posted Jun 19, 2019 11:28 AM
    Buenas tardes Sergio gracias por tus repuestas. Me surgen un par de dudas.

    Opción 1. yo uso CRM Dynamics 2015 On-premise. Estaran disponibles el getUserRoles() ?
    Opción 2. Si es posible realizar lo que me comentas con Dynamics CRM 2015, podrias darme más información de los pasos a seguir? Me parece muy interesante poder realizar eso sin utilizar codigo.

    Muchas gracias.

    ------------------------------
    Gil Costa
    Distribuciones Boadella, SLU
    B
    ------------------------------



  • 4.  RE: Volver abrir oportunidad

    SILVER CONTRIBUTOR
    Posted Jun 21, 2019 11:54 AM
    Buenas tardes, finalmente he conseguido crear el script y funciona.

    Lo he hecho tal y como comento Sergio, con el "Xrm.Page.context.getUserRoles" y comparando con una consulta oData si es el perfil que quiero.

    El problema que tengo ahora, es que según que usuario accede al formulario y ejecuta el script en el onLoad del formulario le da un error.

    Ha ver si alguien puede hecharme una mano, ya que parece que casi lo tengo.

    Gracias.


    ------------------------------
    Gil Costa
    Distribuciones Boadella, SLU
    B
    ------------------------------



  • 5.  RE: Volver abrir oportunidad

    MICROSOFT MVP
    Posted Jun 21, 2019 03:05 PM
    Gil grato escuchar que ha funcionado la opción, sobre tu error no será que habréis echo un cambio en el nombre del js y se quedo en cache?

    El nombre de la función aparece mal escrito, podrá ser eso?

    ------------------------------
    Sergio Macias
    Bisoftt
    monterrey CA
    ------------------------------



  • 6.  RE: Volver abrir oportunidad

    SILVER CONTRIBUTOR
    Posted Jun 25, 2019 03:09 AM
    Buenos días Sergio, he conseguido averiguar que no funciona si ejecuto el script con Internet Explorer, no según el usuario. Si lo ejecuto con Chrome o Firefox funciona perfectamente!

    Alguna idea?

    Aprovecho para pedirte si es posible, si puedes darme más información de cómo realizar la segunda opción (crear una entidad y con el Workbench Ribbon) sin tener que usar código. Ya que tengo un par de scripts en un par de botones y tu opción puede ser mucho mejor.

    Muchas gracias.

    ------------------------------
    Gil Costa
    Distribuciones Boadella, SLU
    B
    ------------------------------



  • 7.  RE: Volver abrir oportunidad

    MICROSOFT MVP
    Posted Jun 25, 2019 11:21 AM
      |   view attached
    Gil buenos días, el detalle del script puede estar relacionado a una linea de codigo la cual no es compatible con el explorador.

    Para el tema de workbench, lo que debes de hacer es

    1. Creas una entidad personalizada
    2. En el rol del usuario que te interesa pueda reabrir la oportunidad le das permiso digamos de escritura (esto lo defines tu, puede ser lectura, eliminación, etc) y el permiso puede ser a nivel usuario
    3. Bajas el workbench, cargas la solucion con la entidad Oportunidad (de preferencia una solucion con solo la entidad sin ningun componente), seleccionas el boton que quieres mostrar/ocultar en el formulario
    4. Y en la parte inferior deberas de crear un Command nuevo y asociarle una nueva Display Rule
    5. El display rule debe de tener un nuevo Step de tipo EntityPrivilegeRule y ahi configuras:
       - EntityName: "entidad custom"
       - PrivilegeDepth: Basic (estos valores equivalen al nivel de seguridad en los roles de seguridad para la entidad)
       - PrivilegeType: Create (aqui estan las opciones de CRUD(create,read,update,delete) estas opciones en conjunto con el campo anterior hacen muchas       combinaciones para jugar con permisos en diferentes botones
       - AppliesTo: PrimaryEntity

    Y con esto al publicar el boton se mostrara si el usuario tiene permisos de Crear a nivel Usuario en la entidad custom y si no el botón se ocultará
    Anexo una imagen

    ------------------------------
    Sergio Macias
    Bisoftt
    monterrey CA
    ------------------------------



  • 8.  RE: Volver abrir oportunidad

    SILVER CONTRIBUTOR
    Posted Jun 25, 2019 12:07 PM
      |   view attached
    Buenas tardes Sergio, perfecto sólo un par de dudas.

    En el punto 2, donde creo la entidad personalizada.

    * Esa entidad si entiendo bien, tiene que ser creada una para cada botón si los usuarios són distintos?
    * Los permisos, no son registros de la entidad si no que le doy permisos a través de los roles cómo adjunto en la imagen?
    * Es indiferente los campos que cree en la entidad?

    Por lo demás creo que lo veo claro.

    Gracias.


    ------------------------------
    Gil Costa
    Distribuciones Boadella, SLU
    B
    ------------------------------



  • 9.  RE: Volver abrir oportunidad

    MICROSOFT MVP
    Posted Jun 25, 2019 01:19 PM
    Gil mis comentarios

    - Es solo una entidad para todos los permisos que requieras
    - A los usuarios les asignaras un rol, ese rol tendrá o no tendrá permisos, eso es lo que mostrará o no el boton
    - Es correcto, el permiso es sobre la acción de crear en la entidad, no tiene que ver con los registros
    - Para los campos, solo deja el campo predeterminado

    ------------------------------
    Sergio Macias
    Bisoftt
    monterrey CA
    ------------------------------