Distribuzione delle personalizzazioni per le applicazioni esistenti

Distribuire le personalizzazioni effettuate alle applicazioni esistenti in modo che altri utenti possano utilizzare le proprie personalizzazioni. Questa procedura spiega come distribuire le personalizzazioni dalla workstation locale.

Per distribuire una nuova applicazione, consultare Distribuzione di nuove applicazioni.

Nota: questo argomento è applicabile solo alla versione SaaS di Order Hub .

Procedura

  1. Preparazione della distribuzione delle personalizzazioni.
  2. Richiamare Customization folder, Customization client ID, Customization auth key per ciascuno dei tenant in cui si desidera distribuire le personalizzazioni.

    Potrebbe essere necessario contattare un amministratore per ottenere Customization auth key se i tenant sono già configurati per la personalizzazione. Per ulteriori informazioni, vedere Abilitazione del menu di personalizzazione per un inquilino.

  3. Aprire features.json nella directory root del modulo.
    Ad esempio, devtoolkit_docker/orderhub-code/buc-app-order/features.json. Se il file non esiste, crearlo. Il contenuto da aggiungere a features.json dipende dal tipo di personalizzazione che si desidera distribuire.
    • Se si sta distribuendo una personalizzazione per un modulo esistente senza nuovi instradamenti, aggiungere un array vuoto al file features.json .
      []
    • Se stai distribuendo una nuova rotta, richiama il valore JSON della funzione da Order Hub.
      1. Accedi a Order Hub.
      2. Passare al tenant di personalizzazione in cui sono state verificate le personalizzazioni.
      3. Andate su Impostazioni > Personalizzazione.
      4. Selezionare l'elemento personalizzato che avvia l'instradamento.
      5. Se si desidera distribuire le personalizzazioni al tenant di personalizzazione in cui sono state verificate le personalizzazioni, assicurarsi di selezionare Hosted by IBM e deselezionare Ambiente di sviluppo locale. Altrimenti, il tenant continuerà a connettersi al server locale.
      6. Nel campo URL relativo, aggiungere il percorso relativo al percorso /<nome-modulo>/<nome-percorso>. Iniziare con una barra in avanti (/). Non è necessario includere uno slash finale.

        Ad esempio, /buc-app-order/create-order.

      7. Salvare tutte le modifiche.
      8. Copia il JSON dal campo Feature json nella IU. Incollare o unire il JSON come elemento array nel file features.json che si trova nella directory root del modulo. Il JSON dall'IU è simile al seguente esempio.
        {
            "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"
          }
        A seconda del contenuto in features.json, potrebbe essere necessario racchiudere il codice tra parentesi quadre [] da aggiungere come elemento array.
  4. Aggiornare il file package-customization.json .
    1. Per ogni modulo personalizzato, aprire il devtoolkit_docker/orderhub-code/<module-name>/package-customization.json file per la modifica.
    2. Nell'oggetto routes , aggiungere ogni instradamento nel modulo personalizzato. Mantenere vuoto l'oggetto customizationContextRoot .
      Ogni chiave nell'oggetto routes identifica il pacchetto di route personalizzato. Il valore è un oggetto con una singola chiave denominata tipo. Assicurarsi che la proprietà type sia impostata su "code".

      Ad esempio:

      {
          "repositoryName": "buc-app-order",
          "customizationContextRoot": "",
          "routes": {
              "create-order": {
                  "type": "code"
              }
          }
      }
  5. Per ogni ambiente in cui si desidera distribuire le personalizzazioni, aggiungere una destinazione di build nel file <module-name>/package.json e quindi nel file <module-name>/packages/<route-name>/package.json per ogni instradamento personalizzato.
    1. Apri <module-name>/package.json .
      Ad esempio, buc-app-order/package.json.
    2. Effettuare una copia della linea build-merged per ogni ambiente di destinazione.
      Ad esempio, si supponga di voler eseguire la distribuzione in quattro ambienti: dev1, qa3, preprode prod. Incollare la riga quattro volte.
    3. Sostituire build-merged con build-merged-<environment> in ogni riga copiata
      Ad esempio:
      "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. Per ogni instradamento personalizzato, aprire il file <module-name>/packages/<route-name>/package.json .
      Ad esempio, buc-app-order/packages/create-order/package.json.
    5. Effettuare una copia della linea build-merged per ogni ambiente di destinazione.
    6. Sostituire build-merged con build-merged-<environment> in ogni riga copiata e aggiungere --deploy-url=<customization folder>/<module-name>/<route-name>/.
      Il valore di <customization folder> è quello recuperato dal passo 2. Ogni ambiente di destinazione ha un valore di cartella di personalizzazione diverso.
      Ad esempio:
      • Per la rotta create-order (in 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/",
      • Per la rotta order-details : (in 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. Creare il pacco di personalizzazione per ogni ambiente di destinazione passando i parametri build-target e customization-context-root corrispondenti nella seguente chiamata yarn.
    yarn package-customization --build-target=build-merged-<environment> --customization-context-root=<customization_folder>
    Nota: non è possibile utilizzare Git Bash se si sta eseguendo questo comando in Windows.
    Ad esempio:
    • Per creare per l'ambiente dev1 :
      yarn package-customization --build-target=build-merged-dev1 --customization-context-root=/buc-app-customization/T3R4fagafd45aadfaffasf
      
    • Per creare per l'ambiente qa3 :
      yarn package-customization --build-target=build-merged-qa3 --customization-context-root=/buc-app-customization/dbU2K1u4seqrRKwBZTyMp1lUJwqQkJ5A
      
  7. Eseguire il seguente comando per pubblicare le personalizzazioni nell'ambiente di destinazione.
    L'ambiente di destinazione è determinato da client-id e client-secret. Ogni ambiente ha una coppia id - segreto client univoca.
    yarn orderhub-cli publish-customization --client-id=<clientId> --client-secret=<clientSecret> --package-name=<module-name>

    Required Parameters:

    • --client-id - L'ID client di personalizzazione. Per ulteriori informazioni su come ottenere l'ID e il segreto, vedere Abilitazione del menu di personalizzazione per un inquilino.
    • --client-secret - Il segreto del client di personalizzazione.
    • --package-name - La cartella del modulo nella cartella di build che contiene i file da caricare. Questo valore corrisponde al nome del modulo, ad esempio buc-app-order.

    Optional Parameters:

    • --orderhub-hostname - Il nome host per il server API di Order Hub. Il valore predefinito è app.omsbusinessusercontrols.ibm.com.
    • --proxy-host - Il nome host e la porta proxy nel caso in cui la macchina di build non abbia accesso direttamente a orderhub - hostname.
    • --package-only - Indica se creare solo lo zip dell'asset di personalizzazione. Il valore predefinito è false
    • --publish-only - Indica se caricare un pacchetto di personalizzazione precostruito. Il valore predefinito è false. Se impostato su vero, è necessario specificare anche il pacchetto da pubblicare utilizzando il parametro -- package - name . Per -- package - name, specifica il percorso a <build-dir>/<package-name>.zip. Ad esempio:
      --publish-only=true --package-name=./dist/buc-app-order.zip
    • --build-dir - La directory che contiene l'asset di personalizzazione compilato. Il valore predefinito è dist