Migrando rotinas BASIC no DataStage

As tarefas do servidor no DataStage® tradicional podem conter rotinas BASIC, que não são suportadas no DataStagemoderno

Quando você migra um trabalho de servidor em um fluxo tradicional DataStage para um fluxo de pipeline em Cloud Pak for Data você pode reescrever a rotina como um script e adicioná-la como um nó de script Run Bash ou Run Python no seu fluxo de pipeline. Para obter mais informações, consulte Substituição de rotinas BASIC em DataStage.

Ao migrar uma tarefa do servidor, os nós de rotina são migrados para os nós de script Executar Bash. As rotinas são armazenadas como scripts .sh na PVC montada em /mnts/ds-storage/projects/<your-project-name>/scripts/ Se você não for um administrador, crie uma conexão de volume de armazenamento para acessar o diretório ds-storage Para executar rotinas migradas, regrave os scripts nesse diretório no código Bash ou Python . Cada nó que faz referência a uma rotina específica executará o script com o mesmo nome

Obtendo argumentos e configurando valores de retorno

A migração converte argumentos de rotina em variáveis de ambiente com o seguinte padrão de nome: <routine_name>_<argument_name>. Para configurar os valores de retorno para um script BASIC regravado, grave uma instrução echo no final de seu script para imprimir uma sequência JSON na saída padrão. Chame ds.CommandOutput(tasks.<id>) para obter a sequência JSON e passá-la para ds.GetOutputArg() como um argumento juntamente com o valor que você deseja recuperar. Veja o seguinte script de exemplo:
#!/bin/bash 

IBMCP4DCallFunction() { 
# Define the function with 2 arguments 
# Increment the values of each argument by 1 
Age=$1 
Name=$2 
Ans=0 
echo "{\"Age\":$Age, \"Name\":\"$Name\", \"Ans\":$Ans}" 
return $Ans 
} 
IBMCP4DCallFunction "$IBMCP4DCallFunction_Age" "$IBMCP4DCallFunction_Name"

Neste exemplo, o nó de pipeline é denominado RoutineAct1 e possui um ID interno de routine1 Os valores para os argumentos de entrada Name e Age são armazenados nas variáveis de ambiente IBMCP4DCallFunction_Age e IBMCP4DCallFunction_Name Para obter o valor do argumento de saída Age em condições ou expressões do acionador de atividade após a rotina, use a chamada de função ds.GetOutPutArg(ds.getCommandOutput(tasks.routine1), 'Age'). Aqui a chamada ds.getCommandOutput retorna a sequência JSON e ds.GetOutPutArg('{"Age":30, "Name":"new name", "Ans":0}', 'Age') retorna o valor 30. Da mesma forma, para recuperar o valor de Ans, você usaria ds.GetOutPutArg(ds.getCommandOutput(tasks.routine1), 'Ans').