• Nenhum resultado encontrado

Programação de Objetos

No documento Apostila SAP Workflow 2008 (páginas 30-33)

Neste tópico serão apresentados os principais comandos utilizados na programação dos métodos utilizados pelas tarefas do workflow. Estes comandos são utilizados no código ABAP juntamente com comandos já utilizados normalmente em relatórios e interfaces, onde a principal diferença é que estes comandos são utilizados para acessar o conteúdo do container do método e atributos do objeto utilizado. Para verificar o programa executado pelo método, devemos acessar o objeto através da transação SWO1 e selecionar o método desejado. Após selecionado o item, clicar no botão Programa. Segue abaixo uma relação dos principais comandos e sua sintaxe:

SWC_GET_ELEMENT CONTAINER ‘Elemento’ v_Variavel.

Este comando é utilizado para obter informações contidas no container do método. Sempre que uma tarefa é executada, as informações que a tarefa recebeu do container do workflow, são passadas do container da tarefa para o container do método. Através deste comando é possível acessar as informações do container do método de acordo com o nome do elemento informado. O nome do elemento do container deve ser colocado entre aspas simples e a variável deve ser criada com o mesmo tipo do elemento do container para que não sejam perdidas informações.

SWC_SET_ELEMENT CONTAINER ‘Elemento’ v_Variavel.

Este comando é utilizado para enviar informações para o container do método. Após a execução do método as informações contidas em seu container podem ser retornadas para o container da tarefa. Através deste comando é possível modificar o conteúdo de um elemento do container do método de acordo com o nome do elemento informado. O nome do elemento do container deve ser colocado entre aspas simples e a variável deve ser criada com o mesmo tipo do elemento do container para que não sejam perdidas informações.

SWC_GET_TABLE CONTAINER ‘Elemento’ t_TabelaInterna.

Este comando é utilizado para obter informações contidas no container do método, mas com uma diferença em relação aos comandos apresentados anteriormente, é utilizado somente para elementos do container que tem em suas características a armazenagem de múltiplas linhas de informação (característica de várias linhas deve estar marcada). Através deste comando é possível acessar as informações do container do método de acordo com o nome do elemento informado e armazena-lo em uma tabela interna. O nome do elemento do container deve ser colocado entre aspas simples e a tabela interna deve ser criada com a mesma estrutura do elemento do container para que não sejam perdidas informações.

SWC_SET_TABLE CONTAINER ‘Elemento’ t_TabelaInterna.

Este comando é utilizado para enviar informações para o container do método, mas com uma diferença em relação aos comandos apresentados anteriormente, é utilizado somente para elementos do container que tem em suas características a armazenagem de múltiplas linhas de informação (característica de várias linhas deve estar marcada). Através deste comando é possível modificar o conteúdo de um elemento do container do método de acordo com o nome do elemento informado. O nome do elemento do container deve ser colocado entre aspas simples e a tabela interna deve ser criada com a mesma estrutura do elemento do container para que não sejam perdidas informações.

SWC_GET_PROPERTY SELF ‘Atributo’ v_variavel (ou) t_TabelaInterna.

Este comando é utilizado para obter informações referentes ao objeto onde o método está sendo processado, ou seja, sempre que um método é executado através de uma tarefa do workflow, significa que o objeto já possui uma instância válida e que seus atributos estão preenchidos com suas respectivas informações. Um exemplo é o objeto BUS1001006, que é o objeto utilizado para materiais, onde sua instância é o código do material (campo chave). Uma vez que este objeto está instanciado, é possível acessar seus atributos dentro do método utilizado o comando acima. O nome do atributo deve estar entre aspas simples e utilizando uma variável ou uma tabela interna para receber as informações de acordo com o atributo desejado. Para a utilização de uma variável ou tabela interna, devemos cria- las com a mesma referência que o atributo do objeto foi criado para que não sejam perdidas informações.

Segue abaixo um exemplo prático da utilização destes comandos, onde as informações são obtidas através do container do método e do atributo do objeto, e ao final as informações selecionadas são enviadas para o container do método. Este exemplo poderia ser aplicado na utilização de uma tarefa background que utiliza o objeto BUS1001006 para obter a descrição do material.

BEGIN_METHOD exemplo CHANGING CONTAINER.

DATA: v_texto(60) TYPE c, “ Texto para retornar ao container v_matnr LIKE mara-matnr, “ Código do Material

v_maktx LIKE matk-maktx, “ Descrição do Material

v_meins LIKE mara-meins. “ Unidade de Medida do Material * Obtém o código do material através do container do método

SWC_GET_ELEMENT CONTAINER ‘Material’ v_matnr. * Seleciona a descrição do material

SELECT SINGLE maktx INTO v_maktx FROM maktx

WHERE matnr EQ v_matnr AND spras EQ ‘PT’.

* Obtém a unidade de medida do material através do atributo do objeto SWC_GET_PROPERTY SELF ‘BaseUnitOfMeasure’ v_meins. * Monta o texto a ser enviado

CONCATENATE ‘Material:’ v_maktx ‘comercializado em’ v_meins INTO v_texto SEPARATED BY SPACE.

* Envia texto para o container do método

SWC_SET_ELEMENT CONTAINER ‘Texto’ v_texto. END_METHOD.

Para métodos utilizados em tarefas de diálogo, ou seja, a tarefa é encaminhada para um usuário executa-la, podemos utilizar a chamada de uma transação, um relatório, BAPI ou outro tipo de processamento que necessite da interação do usuário. Da mesma forma que os comandos foram apresentados no exemplo anterior, são utilizados também para obter informações utilizadas na chamada de uma transação e podem ser utilizados para retornar o resultado do processamento efetuado.

Quando utilizamos, por exemplo a chamada de uma transação em uma tarefa de diálogo, ao executar o workflow o código ABAP é executado em background até a chamada da transação. No momento que a transação é executada, usuário responsável pela tarefa deve executar as ações necessárias, onde ele terá controle do processamento até que a transação seja encerrada. No momento que a transação é encerrada, o processamento do método continua a ser efetuado em background pelo workflow e somente quando o método é encerrado a tarefa do workflow é considerada como concluída. Um exemplo que pode ser observado para verificarmos um método que utiliza a chamada de uma transação é o método Create do objeto BUS2078, onde é executada a transação QM01.

No documento Apostila SAP Workflow 2008 (páginas 30-33)

Documentos relacionados