Construindo os Modelo de Mensagens para o Analisador IDoc

Para utilizar a capacidade do WebSphere Message Broker para transformar dados SAP IDoc, você deve modelar os dados de segmento do IDoc no WebSphere Message Broker.

As mensagens enviadas para aplicativos SAP e recebidas deles são processadas pelo analisador IDoc, que requer um modelo de mensagem para interpretar os dados corretamente. Este tópico documenta como construir o modelo de mensagens. Uma versão pré-construída de exemplo de um modelo de mensagem é fornecida em SupportPac IA0F.

Obtendo o IDoc

Utilize o procedimento a seguir para criar um arquivo de importação dos dados requeridos do IDoc para o Message Brokers Toolkit para utilizar:
  1. Efetue logon em um sistema SAP
  2. Execute a transação fornecida we60 que extrai os dados IDoc como um arquivo de cabeçalho C:
    1. Para ObjectName selecione o tipo de IDoc de interesse, por exemplo MATMAS02.
    2. Selecione a versão do tipo de registro. Um IDoc Versão 4 é tipo 3.
    3. Selecione C-header no menu Documentação.
    4. Digite o nome do arquivo para a saída da transação quando solicitado. A representação C do IDoc é salva nesse arquivo.
  3. Utilize o script Perl hdrfiddle.pl, fornecido em SupportPac IA0F, para assegurar que o formulário do arquivo de saída criado seja do formato correto para importar para o Message Brokers Toolkit.

Modelando o IDoc

Utilize o seguinte procedimento para criar seu modelo de mensagem:

  1. Utilize o assistente de Projeto de Novo Conjunto de Mensagens para criar um conjunto de mensagens para seu IDoc, por exemplo matmas02, e para criar um formato físico CWF (Custom Wire Format).
  2. Utilize o editor de conjunto de mensagens para alterar a propriedade Analisador do Tempo de Execução do conjunto de mensagens para IDOC.
  3. Utilize o assistente de Novo Arquivo de Definição de Mensagem ou o comando mqsicreatemsgdefs para importar a representação C do IDoc para o novo conjunto de mensagens. Quando estiver utilizando o assistente ou o comando, especifique as seguintes configurações:
    • Crie mensagens para os segmentos que aparecem no IDoc.
    • Utilize a opção Codificação de Cadeia para importar matrizes char como cadeias de comprimento fixo.
    • Utilize a opção Char de Preenchimento para Cadeia para tornar o espaço em branco (" ") o caractere de preenchimento utilizado.
    Importando a partir de C contém informações sobre como utilizar o assistente de Novo Arquivo de Definição de Mensagem.
  4. Renomeie cada mensagem para o nome do segmento que representa em letras maiúsculas. Por exemplo, para um segmento chamado E2MARAMM, a mensagem deve ser denominada E2MARAMM.

O conjunto de mensagens deve ser incluído em um arquivo arquivado do intermediário e implementado em um grupo de execução do intermediário, pois o analisador de IDoc utiliza o analisador de MRM para analisar os segmentos de IDoc definidos.

A propriedade Analisador do Tempo de Execução, o nome do conjunto de mensagens e o nome do Custom Wire Format são utilizados quando você cria um fluxo de mensagens para processar um IDoc. Eles aparecem como os valores das propriedades Domínio de Mensagem, Conjunto de Mensagens e Formato da Mensagem, respectivamente, de um nó MQinput. Não forneça uma propriedade Tipo de Mensagem no nó MQInput, pois o analisador de IDoc utiliza o conteúdo do campo IDoc DD definido pelo SAP segnam para fornecer o nome da mensagem.

Acessando Campos do IDoc Utilizando ESQL

Utilize o Assistente de Conteúdo do editor ESQL para preencher campos do IDoc definidos pelo SAP. Chame o Assistente de Conteúdo a partir do menu Editar ou, em alguns sistemas, pressionando Ctrl+Space, se não tiver sido designado a outra função.

Ao chegar à tag sdatatag em uma instrução ESQL, a próxima tag é MRM, que deve ser digitada manualmente e, em seguida, o nome do campo a ser manipulado. Especifique o nome do campo no segmento da mensagem aqui, em vez do nome do segmento de mensagem.

Por exemplo, o código a seguir configura o nome do segmento do IDoc:

SET OutputRoot.IDOC.DD[I].segnam  = 'E2MAKTM001';
O exemplo a seguir configura o campo msgfn no segmento E2MAKTM001:
SET OutputRoot.IDOC.DD[I].sdatatag.MRM.msgfn = '006';     
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac20030_