Despliegue de personalizaciones para aplicaciones existentes

Despliegue las personalizaciones que ha realizado en las aplicaciones existentes para que otros usuarios puedan utilizar las personalizaciones. Este procedimiento explica cómo desplegar personalizaciones desde la estación de trabajo local.

Para desplegar una nueva aplicación, consulte Despliegue de nuevas aplicaciones.

Nota: Este tema sólo es aplicable a la versión de SaaS de Order Hub .

Procedimiento

  1. Prepárese para desplegar las personalizaciones.
  2. Recupere Customization folder, Customization client ID, Customization auth key para cada uno de los arrendatarios donde desea desplegar las personalizaciones.

    Es posible que tenga que ponerse en contacto con un administrador para obtener el Customization auth key si los arrendatarios ya están configurados para la personalización. Para obtener más información, consulte Habilitar el menú de personalización para un inquilino.

  3. Abra features.json en el directorio raíz del módulo.
    Por ejemplo, devtoolkit_docker/orderhub-code/buc-app-order/features.json. Si el archivo no existe, cree el archivo. El contenido que necesita añadir a features.json depende del tipo de personalización que desee desplegar.
    • Si está desplegando una personalización para un módulo existente sin ninguna ruta nueva, añada una matriz vacía al archivo features.json .
      []
    • Si está desplegando una nueva ruta, recupere el valor JSON de característica de Order Hub.
      1. Inicie sesión en Order Hub.
      2. Cambie al arrendatario de personalización donde ha probado las personalizaciones.
      3. Ve a Configuración > Personalización.
      4. Seleccione el elemento personalizado que inicia la ruta.
      5. Si desea desplegar personalizaciones en el arrendatario de personalización donde ha probado las personalizaciones, asegúrese de seleccionar Alojado por IBM y borrar Entorno de desarrollo local. De lo contrario, el arrendatario seguirá conectándose al servidor local.
      6. En el campo URL relativa, añada la ruta relativa a su ruta /<nombre-módulo>/<nombre-ruta>. Empiece con una barra oblicua (/). No es necesario que incluya una barra al final.

        Por ejemplo, /buc-app-order/create-order.

      7. Guarde todos los cambios.
      8. Copie el JSON del campo Feature json en la interfaz de usuario. Pegue o fusione el JSON como un elemento de matriz en el archivo features.json que está en el directorio raíz del módulo. El JSON de la interfaz de usuario se parece al ejemplo siguiente.
        {
            "featureId": "custom-[Id]", // must be unique
            "state": "ACTIVE",
            "sequence": 0,
            "title": "[Title to display for the custom application]",
            "iconName": "website-20",
            "link": "/[module-name]/[path to new route]",
            "path": "/[module-name]/[path to new route]",
            "hidden": true,
            "allowedRoles": [   //the roles that can access this customization
              "Fulfillment Manager",
              "Tenant Administrator"
            ],
            "description": [
              {
                "locale": "en_US",
                "language": "en",
                "title": "Title to display for the custom feature"
              }
            ],
            "type": "IFRAME"
          }
        En función del contenido de features.json, es posible que tenga que rodear el código con corchetes [] para añadirlo como elemento de matriz.
  4. Actualice el archivo package-customization.json .
    1. Para cada módulo personalizado, abra el archivo devtoolkit_docker/orderhub-code/<module-name>/package-customization.json para editarlo.
    2. En el objeto routes , añada cada ruta en el módulo que se ha personalizado. Mantenga el objeto customizationContextRoot vacío.
      Cada clave del objeto de rutas identifica el paquete de rutas personalizado. El valor es un objeto con una clave única denominada type. Asegúrese de que la propiedad type esté siempre establecida en "code".

      Por ejemplo:

      {
          "repositoryName": "buc-app-order",
          "customizationContextRoot": "",
          "routes": {
              "create-order": {
                  "type": "code"
              }
          }
      }
  5. Para cada entorno en el que desee desplegar personalizaciones, añada un destino de compilación en el archivo <module-name>/package.json y, a continuación, en el archivo <module-name>/packages/<route-name>/package.json para cada ruta que se haya personalizado.
    1. Abra el archivo <module-name>/package.json .
      Por ejemplo, buc-app-order/package.json.
    2. Haga una copia de la línea build-merged para cada entorno de destino.
      Por ejemplo, supongamos que desea desplegar en cuatro entornos: dev1, qa3, preprody prod. Pegue la línea cuatro veces.
    3. Sustituir build-merged por build-merged-<environment> en cada línea copiada.
      Por ejemplo:
      "build-merged": "lerna run build-merged --stream",
      "build-merged-dev1": "lerna run build-merged-dev1 --stream",
      "build-merged-qa3": "lerna run build-merged-qa3 --stream",
      "build-merged-preprod": "lerna run build-merged-preprod --stream",
      "build-merged-prod": "lerna run build-merged-prod --stream"
    4. Para cada ruta personalizada, abra el archivo <module-name>/packages/<route-name>/package.json .
      Por ejemplo, buc-app-order/packages/create-order/package.json.
    5. Haga una copia de la línea build-merged para cada entorno de destino.
    6. Sustituya build-merged por build-merged-<environment> en cada línea copiada y añada --deploy-url=<customization folder>/<module-name>/<route-name>/.
      El valor para <customization folder> es el valor que recuperó del paso 2. Cada entorno de destino tiene un valor de carpeta de personalización diferente.
      Por ejemplo:
      • Para la ruta de create-order (en buc-app-order/packages/create-order/package.json):
        "build-merged": "ng build create-order --configuration=merged-prod",
        "build-merged-dev1": "ng build create-order --configuration=merged-prod --deploy-url=/buc-app-customization/T3R4fagafd45aadfaffasf/buc-app-order/create-order/",
        "build-merged-qa3": "ng build create-order --configuration=merged-prod --deploy-url=/buc-app-customization/dbU2K1u4seqrRKwBZTyMp1lUJwqQkJ5A/buc-app-order/create-order/",
        "build-merged-preprod": "ng build create-order --configuration=merged-prod --deploy-url=/buc-app-customization/zdD4uxaf8GRTbzMSg8zU2K/buc-app-order/create-order/",
        "build-merged-prod": "ng build create-order --configuration=merged-prod --deploy-url=/buc-app-customization/balohTK3ang5GmXsRwOSeSidbQOKEw6N/buc-app-order/create-order/",
      • Para la ruta de order-details : (en buc-app-order/packages/order-details/package.json):
         "build-merged": "ng build order-details --configuration=merged-prod",
        "build-merged-dev1": "ng build order-details --configuration=merged-prod --deploy-url=/buc-app-customization/T3R4fagafd45aadfaffasf/buc-app-order/order-details/",
        "build-merged-qa3": "ng build order-details --configuration=merged-prod --deploy-url=/buc-app-customization/dbU2K1u4seqrRKwBZTyMp1lUJwqQkJ5A/buc-app-order/order-details/",
        "build-merged-preprod": "ng build order-details --configuration=merged-prod --deploy-url=/buc-app-customization/zdD4uxaf8GRTbzMSg8zU2K/buc-app-order/order-details/",
        "build-merged-prod": "ng build order-details --configuration=merged-prod --deploy-url=/buc-app-customization/balohTK3ang5GmXsRwOSeSidbQOKEw6N/buc-app-order/order-details/",
  6. Cree el paquete de personalización para cada entorno de destino pasando los parámetros build-target y customization-context-root correspondientes en la siguiente llamada yarn.
    yarn package-customization --build-target=build-merged-<environment> --customization-context-root=<customization_folder>
    Nota: No puede utilizar Git Bash si está ejecutando este mandato en Windows.
    Por ejemplo:
    • Para compilar para el entorno de dev1 :
      yarn package-customization --build-target=build-merged-dev1 --customization-context-root=/buc-app-customization/T3R4fagafd45aadfaffasf
      
    • Para compilar para el entorno de qa3 :
      yarn package-customization --build-target=build-merged-qa3 --customization-context-root=/buc-app-customization/dbU2K1u4seqrRKwBZTyMp1lUJwqQkJ5A
      
  7. Ejecute el mandato siguiente para publicar las personalizaciones en el entorno de destino.
    El entorno de destino está determinado por client-id y client-secret. Cada entorno tiene un par de id-secreto de cliente exclusivo.
    yarn orderhub-cli publish-customization --client-id=<clientId> --client-secret=<clientSecret> --package-name=<module-name>

    Required Parameters:

    • --client-id -El ID de cliente de personalización. Para obtener más información sobre cómo obtener el ID y el secreto, consulte Habilitar el menú de personalización para un tenant.
    • --client-secret -El secreto de cliente de personalización.
    • --package-name -La carpeta de módulo bajo el directorio de compilación que contiene los archivos a cargar. Este valor corresponde al nombre del módulo, como por ejemplo buc-app-order.

    Optional Parameters:

    • --orderhub-hostname -El nombre de host del servidor de API de Order Hub. El valor predeterminado es app.omsbusinessusercontrols.ibm.com.
    • --proxy-host -El nombre de host y el puerto del proxy en caso de que la máquina de compilación no tenga acceso a orderhub-hostname directamente.
    • --package-only -Indica si se debe crear sólo el zip del activo de personalización. El valor predeterminado es false
    • --publish-only -Indica si se debe cargar un paquete de personalización precompilado. El valor predeterminado es false. Si se establece en true, también debe especificar el paquete a publicar utilizando el parámetro -- package-name . Para -- package-name, especifique la vía de acceso a <build-dir>/<package-name>.zip. Por ejemplo:
      --publish-only=true --package-name=./dist/buc-app-order.zip
    • --build-dir -El directorio que contiene el activo de personalización compilado. El valor predeterminado es dist