Implementando customizações para aplicativos existentes

Implemente customizações feitas em aplicativos existentes para que outros usuários possam usar suas customizações. Este procedimento explica como implementar customizações de sua estação de trabalho local.

Para implementar um novo aplicativo, consulte Implementando novos aplicativos.

Nota: este tópico é aplicável apenas à versão SaaS do Order Hub .

Procedimento

  1. Prepare-se para implantar personalizações.
  2. Recupere o Customization folder, Customization client ID, Customization auth key para cada um dos locatários nos quais deseja implementar as customizações.

    Pode ser necessário entrar em contato com um administrador para obter o Customization auth key se os locatários já estiverem configurados para customização.. Para obter mais informações, consulte Ativar o menu de personalização para um locatário.

  3. Abra o features.json no diretório raiz do módulo.
    Por exemplo, devtoolkit_docker/orderhub-code/buc-app-order/features.json.. Se o arquivo não existir, crie o arquivo. O conteúdo que você precisa incluir no features.json depende do tipo de customização que deseja implementar.
    • Se você estiver implementando uma customização para um módulo existente sem nenhuma nova rota, inclua uma matriz vazia no arquivo features.json
      []
    • Se você estiver implementando uma nova rota, recupere o valor JSON do Recurso do Order Hub.
      1. Efetue login no Order Hub.
      2. Alterne para o locatário de customização no qual você testou suas customizações..
      3. Vá para Configurações > Personalização.
      4. Selecione o item personalizado que ativa sua rota.
      5. Se você desejar implementar customizações no locatário de customização no qual testou suas customizações, assegure-se de selecionar Hospedado pela IBM e limpar Ambiente de desenvolvimento local. Caso contrário, o locatário continuará a se conectar ao seu servidor local
      6. No campo URL relativo, adicione o caminho relativo à sua rota /<module-name>/<route-name>. Comece com uma barra (/). Não é necessário incluir uma barra no final.

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

      7. Salve todas as alterações.
      8. Copie o JSON do campo Json do recurso na IU Cole ou mescle o JSON como um elemento de matriz no arquivo features.json que está no diretório raiz do módulo. O JSON da IU é semelhante à amostra a seguir.
        {
            "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"
          }
        Dependendo do conteúdo no features.json, pode ser necessário colocar o código entre colchetes [] para incluir como um elemento de matriz.
  4. Atualize o arquivo package-customization.json .
    1. Para cada módulo customizado, abra o arquivo devtoolkit_docker/orderhub-code/<module-name>/package-customization.json para edição.
    2. No objeto routes , inclua cada rota no módulo customizado. Mantenha o objeto customizationContextRoot vazio.
      Cada chave no objeto de rotas identifica o pacote de rotas customizado. O valor é um objeto com uma única chave chamada type Certifique-se de que a propriedade type esteja sempre configurada como "code"

      Por exemplo,

      {
          "repositoryName": "buc-app-order",
          "customizationContextRoot": "",
          "routes": {
              "create-order": {
                  "type": "code"
              }
          }
      }
  5. Para cada ambiente no qual você deseja implementar customizações, inclua um destino de compilação no arquivo <module-name>/package.json e, em seguida, no arquivo <module-name>/packages/<route-name>/package.json para cada rota que foi customizada.
    1. Abrir <module-name>/package.json arquivo.
      Por exemplo, buc-app-order/package.json..
    2. Faça uma cópia da linha build-merged para cada ambiente de destino.
      Por exemplo, suponha que você deseja implementar em quatro ambientes; dev1, qa3, preprode prod Cole a linha quatro vezes.
    3. Substituir build-merged por build-merged-<environment> em cada linha copiada.
      Por exemplo,
      "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 rota que é customizada, abra o arquivo <module-name>/packages/<route-name>/package.json
      Por exemplo, buc-app-order/packages/create-order/package.json..
    5. Faça uma cópia da linha build-merged para cada ambiente de destino.
    6. Substituir build-merged por build-merged-<environment> em cada linha copiada e incluir --deploy-url=<customization folder>/<module-name>/<route-name>/.
      O valor de <customization folder> é o valor que você recuperou na etapa 2. Cada ambiente de destino possui um valor da pasta de customização diferente.
      Por exemplo,
      • Para a rota create-order (em 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 a rota order-details : (em 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. Construa o pacote de customização para cada ambiente de destino transmitindo os parâmetros build-target e customization-context-root correspondentes na chamada yarn a seguir.
    yarn package-customization --build-target=build-merged-<environment> --customization-context-root=<customization_folder>
    Nota: não será possível usar Git Bash se você estiver executando esse comando no Windows.
    Por exemplo,
    • Para construir para o ambiente do dev1 :
      yarn package-customization --build-target=build-merged-dev1 --customization-context-root=/buc-app-customization/T3R4fagafd45aadfaffasf
      
    • Para construir para o ambiente do qa3 :
      yarn package-customization --build-target=build-merged-qa3 --customization-context-root=/buc-app-customization/dbU2K1u4seqrRKwBZTyMp1lUJwqQkJ5A
      
  7. Execute o comando a seguir para publicar as customizações no ambiente de destino.
    O ambiente de destino é determinado pelo client-id e pelo client-secret Cada ambiente tem um par de ID de cliente-segredo exclusivo..
    yarn orderhub-cli publish-customization --client-id=<clientId> --client-secret=<clientSecret> --package-name=<module-name>

    Required Parameters:

    • --client-id -O ID do cliente de customização Para obter mais informações sobre como obter o ID e o segredo, consulte Ativar o menu de personalização para um locatário.
    • --client-secret -O segredo do cliente de customização
    • --package-name -A pasta do módulo sob o diretório de construção que contém os arquivos para fazer upload. Esse valor corresponde ao nome do módulo, como buc-app-order.

    Optional Parameters:

    • --orderhub-hostname -o nome do host para o servidor da API do Order Hub O padrão é app.omsbusinessusercontrols.ibm.com.
    • --proxy-host -O nome do host e a porta do proxy no caso de a máquina de compilação não ter acesso ao nome do host do pedido diretamente.
    • --package-only -Indica se o zip do ativo de customização deve ser construído apenas O padrão é false
    • --publish-only -Indica se deve ser feito upload de um pacote de customização pré-construído O padrão é false. Se configurado como true, deve-se também especificar o pacote a ser publicado usando o parâmetro -- package-name Para -- package-name, especifique o caminho para <build-dir>/<package-name>.zip. Por exemplo,
      --publish-only=true --package-name=./dist/buc-app-order.zip
    • --build-dir -O diretório que contém o ativo de customização compilado O padrão é dist