Gravar uma transação de seleção única do VA03 no front-end do SAP
Requisitos
Para seleção única de uma instância de processo do grupo de tipos de processo de processamento de Pedidos do PPM, a Transação VA03 (Sequência de exibição) deve ser chamada no sistema SAP usando o ID sapppm.
A transação tem de ser associada ao atributo de processo AT_SALES_ORDER_NUMBER (número do pedido da instância de processo selecionada) do PPM.
Abaixo, verá como usar o gravador de transações do SAP para gravar a Transação VA03 (Sequência de exibição) tendo em conta os requisitos estabelecidos.
Inicie o gravador de transações no front-end do SAP (transação SHDB). A tela seguinte é exibida:
Crie um novo registro e insira qualquer nome na caixa Registro a ser usada para salvar o registro. No campo Código de transação, insira o nome da transação a ser registrada:
Agora inicie a gravação e insira os dados necessários na tela a seguir, ou seja, nas caixas a serem preenchidas com os atributos de processo do PPM, insira os valores correspondentes e preencha as caixas que devem ser preenchidas com valores fixos quando a transação for chamada. Neste exemplo, não há valores fixos a serem predefinidos, apenas o número do pedido a ser transferido da instância de processo do PPM. Insira um número de pedido que exista em seu sistema na caixa de pedidos.
Confirme as entradas com a tecla F5 e exiba os dados para o pedido 7499:
Sair da transação usando Voltar (F3). Regressou ao gravador de transações e pode ver suas entradas no formato de entrada em lote ABAP:
A primeira linha do script de entrada de lote refere-se à chamada de transação. As últimas duas linhas representam a exibição do pedido e o uso do botão Voltar. Essas linhas podem ser ignoradas durante a criação seguinte da configuração de transação XML.
O conteúdo de todas as outras linhas precisa ser transferido para o formato XML dos elementos batchinputline.
Nome de coluna em formato de entrada de lote |
Atributo XML |
---|---|
Programa |
program |
Dynpro |
dynpro |
Indicador de início |
dynprobegin |
Nome de campo |
fieldname |
Valor de campo |
fieldvalue |
Campos sem valor não precisam ser especificados, pois isso corresponde ao valor padrão de fieldvalue. O formato XML neste exemplo é semelhante a:
...
<batchinputline program="SAPMV45A" dynpro="0102"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="VBAK-VBELN"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=UER1"/>
<batchinputline fieldname="VBAK-VBELN"
fieldvalue="7499"/>
...
Para garantir que o pedido 7499 nem sempre é exibido, independentemente da instância de processo no grupo de tipos de processo do processamento de Pedidos do qual é chamada a transação VA03, substitua o valor estático do campo do número do pedido no elemento batchinputline final (neste caso: VBAK-VBELN) com o atributo de processo PPM correspondente que contém o número de pedido da instância de processo, por exemplo, AT_SALES_ORDER_NUMBER.
Combinado com dados de conexão (amostra), a configuração da transação agora se parece com a seguinte (dados de entrada em lote ABAP em negrito):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r3transactionconf SYSTEM
"mysaptransaction.dtd">
<r3transactionconf>
<submenu>
<description language="de"
name="SAP-Transaktionen"/>
<description language="en"
name="SAP transactions"/>
</submenu>
<logoutMenuEntry>
<description language="de"
name="SAP-Verbindung ändern"/>
<description language="en"
name="Change SAP connection"/>
</logoutMenuEntry>
<r3system systemid="sapppm" client="800">
<description language="de"
name="SAP-System 'sapppm' "/>
<description language="en"
name="SAP system 'sapppm' "/>
<locales>
<defaultlocale value="de"/>
<locale value="en"/>
</locales>
<applicationserver appserver="sapppm"
systemnumber="00"/>
</r3system>
<transaction systemid="sapppm"
transactioncode="VA03" transactionid="VA03"
proctypegroup="Order processing">
<description language="de"
name="Auftrag anzeigen (VA03)"/>
<description language="en"
name="Display sales order (VA03)"/>
<batchinputline program="SAPMV45A"
dynpro="0102" dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="VBAK-VBELN"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=UER1"/>
<batchinputline fieldname="VBAK-VBELN"
attributname="AT_SALES_ORDER_NUMBER"/>
</transaction>
</r3transactionconf>
Exibir no PPM
O menu de contexto para chamar uma transação em uma instância de processo selecionada no grupo de tipos de processo Processamento de pedido\Outros pedidos em linha com a configuração acima é semelhante a:
A caixa de diálogo de logon do SAP em linha com a configuração é semelhante a:
Depois que o usuário for autenticado com sucesso no sistema SAP, a transação VA03 é chamada no front-end do SAP e os dados pertencentes ao número do pedido da instância de processo selecionada (aqui: 5000053) são exibidos:
Registrar transação ME5F multi-seleção
Requisitos
Se várias instâncias de processo do grupo de tipos de processo Requisições de compra estiverem selecionadas na tabela de instâncias de processo, deverá ser possível chamar a transação ME5F (liberar lembrete: Requisições de compra) no sistema SAP usando o ID sapppm. Use KY como código de liberação e 01 como grupo de liberação para cada chamada da transação ME5F.
Os valores do atributo de processo AT_BANF_NUMBER (número de requisição de compra) do PPM para as instâncias de processo selecionadas, devem ser transferidos para a transação.
Abaixo, verá como usar o gravador de transações do SAP para gravar a transação ME5F (lembrete de liberação de requisição de compra) tendo em conta os requisitos estabelecidos.
Inicie o gravador de transações no front-end do SAP (transação SHDB). A tela seguinte é exibida:
Crie um novo registro e insira qualquer nome na caixa Registro a ser usada para salvar o registro. No campo Código de transação, insira o nome da transação a ser registrada:
Agora inicie a gravação e insira as informações necessárias na tela seguinte. Para números de requisição de compra, insira os números 1001 - 1010 como valores individuais. Na caixa de diálogo, use a tecla Para baixo para navegar e evitar um código OK não funcional no script em lote ABAP usando rolagem vertical.
Na caixa Código de liberação, insira o valor KY e na caixa Grupo de liberação, insira o valor 01. Envie suas entradas pressionando a tecla F8. Agora a transação terá a seguinte aparência:
Pressione novamente F8 para executar a transação com os valores especificados e exibir os requisitos de compra correspondentes no formato de script em lote ABAP:
Em vez de aplicar os valores diretamente do front-end do SAP, também pode exportar o script como um arquivo DAT usando Shift+F8 e exibir o conteúdo, incluindo os números de linha no editor.
A primeira linha do script de entrada de lote refere-se à chamada de transação. Ignore essa linha e as linhas 41-48; elas contêm entradas repetidas das linhas 5-11 ou (tal como na linha 46) dados transferidos automaticamente da parte inferior da caixa de diálogo de seleção múltipla. As linhas nomeadas BDC_SUBSCR (por exemplo, linha 14) têm de ser ignoradas na criação seguinte da configuração de transação XML.
O conteúdo de todas as outras linhas precisa ser transferido para o formato XML dos elementos batchinputline.
Nome de coluna em formato de entrada de lote |
arquivo DAT |
Atributo XML |
Programa |
2, 12, 25, 38 |
program |
Dynpro |
2, 12, 25, 38 |
dynpro |
Indicador de início |
2, 12, 25, 38 |
dynprobegin |
Nome de campo |
por exmplo, 3-11 (1. tela) |
fieldname |
Valor de campo |
por exmplo, 3-11 (1. tela) |
fieldvalue |
Não indique campos sem valor porque isso corresponde ao valor padrão fieldvalue.
...
<!-- 1st screen -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="S_FRGGR-LOW"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=%005"/>
<batchinputline fieldname="P_FRGAB" fieldvalue="KY" />
<batchinputline fieldname="S_FRGGR-LOW" fieldvalue="01" />
<batchinputline fieldname="P_FRGVO" fieldvalue="X" />
<batchinputline fieldname="P_SELGS" fieldvalue="X" />
<batchinputline fieldname="P_SELPO" fieldvalue="X" />
<batchinputline fieldname="P_LSTUB" fieldvalue="A" />
<batchinputline fieldname="P_SRTKZ" fieldvalue="1" />
<!-- 2nd screen -->
<batchinputline program="SAPLALDB" dynpro="3000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE" fieldvalue="=P+" />
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="RSCSEL-SLOW_I(08)"/>
<batchinputline fieldname="RSCSEL-SLOW_I(01)"
fieldvalue="1001"/>
<batchinputline fieldname="RSCSEL-SLOW_I(02)"
fieldvalue="1002"/>
<batchinputline fieldname="RSCSEL-SLOW_I(03)"
fieldvalue="1003"/>
<batchinputline fieldname="RSCSEL-SLOW_I(04)"
fieldvalue="1004"/>
<batchinputline fieldname="RSCSEL-SLOW_I(05)"
fieldvalue="1005"/>
<batchinputline fieldname="RSCSEL-SLOW_I(06)"
fieldvalue="1006"/>
<batchinputline fieldname="RSCSEL-SLOW_I(07)"
fieldvalue="1007"/>
<batchinputline fieldname="RSCSEL-SLOW_I(08)"
fieldvalue="1008"/>
<batchinputline fieldname="RSCSEL-SLOW_I(09)"
fieldvalue="__________"/>
<!-- 3rd screen -->
<batchinputline program="SAPLALDB" dynpro="3000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ACPT"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="RSCSEL-SLOW_I(03)"/>
<batchinputline fieldname="RSCSEL-SLOW_I(01)"
fieldvalue="1008"/>
<batchinputline fieldname="RSCSEL-SLOW_I(02)"
fieldvalue="1009"/>
<batchinputline fieldname="RSCSEL-SLOW_I(03)"
fieldvalue="1010"/>
<batchinputline fieldname="RSCSEL-SLOW_I(04)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(05)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(06)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(07)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(08)"
fieldvalue=""/>
<batchinputline fieldname="RSCSEL-SLOW_I(09)"
fieldvalue=""/>
<!-- 4th screen -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ONLI"/>
...
Essa configuração de transação funcionaria também com os dados de conexão do exemplo anterior. No entanto, não importa quais instâncias de processo do grupo de tipos de processo Requisições de compra você selecione, uma transação pertencente a uma requisição de compra com o número 1001-1010 será sempre exibida.
Para exibir a requisição de compra adequada para cada instância de processo, é necessário substituir as duas telas de seleção múltipla (todos os elementos XML de batchinputline da segunda e terceira telas) na configuração atual com um único elemento XML batchinputlist. Precisa dos seguintes dados:
Atributo XML |
Valor (descrição) |
program |
SAPLALDB (nome do programa) |
dynpro |
3000 (nome do dynpro) |
okcodefieldname |
BDC_OKCODE (nome do campo dynpro que contém o código OK) |
okcodepagedown |
=P+ (valor do código OK para avançar uma página) |
okcodeaccept |
=ACPT (valor do código OK para aceitar a entrada em seleção múltipla) |
fieldname |
RSCSEL-SLOW_I (Nome do campo ao qual deseja associar os valores do atributo PPM. O campo não pode conter índices de linha [(01), (02), etc.].) |
attributname |
AT_BANF_NUMBER (designação interna do atributo de processo PPM cujos valores serão transferidos para a transação chamada) |
linesperpage |
9 (número de linhas de entrada em cada tela de seleção múltipla) |
Com base nessas entradas, o elemento batchinputlist agora é semelhante a:
<batchinputlist program="SAPLALDB" dynpro="3000"
okcodefieldname="BDC_OKCODE" okcodepagedown="=P+"
okcodeaccept="=ACPT" fieldname="RSCSEL-SLOW_I"
attributname="AT_BANF_NUMBER" linesperpage="9" />
Em combinação com os dados de conexão do exemplo de seleção única, a configuração da transação agora se parece com isso:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r3transactionconf SYSTEM
"mysaptransaction.dtd">
<r3transactionconf>
<submenu>
<description language="de"
name="SAP-Transaktionen"/>
<description language="en"
name="SAP transactions"/>
</submenu>
<logoutMenuEntry>
<description language="de"
name="SAP-Verbindung ändern"/>
<description language="en"
name="Change SAP connection"/>
</logoutMenuEntry>
<r3system systemid="sapppm" client="800">
<description language="de"
name="SAP-System 'sapppm' "/>
<description language="en"
name="SAP system 'sapppm' "/>
<locales>
<defaultlocale value="de"/>
<locale value="en"/>
</locales>
<applicationserver appserver="sapppm"
systemnumber="00"/>
</r3system>
<transaction
systemid="sapppm" transactioncode="ME5F"
transactionid="ME5F">
<description language="de"
name="Freigabeerinnerung BANF (ME5F)"/>
<description language="en"
name="Release (approval) reminder:
Purchase Requisitions (ME5F)"/>
<!-- 1st screen -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_CURSOR"
fieldvalue="S_FRGGR-LOW"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=%005"/>
<batchinputline fieldname="P_FRGAB" fieldvalue="KY" />
<batchinputline fieldname="S_FRGGR-LOW"
fieldvalue="01"/>
<batchinputline fieldname="P_FRGVO" fieldvalue="X" />
<batchinputline fieldname="P_SELGS" fieldvalue="X" />
<batchinputline fieldname="P_SELPO" fieldvalue="X" />
<batchinputline fieldname="P_LSTUB" fieldvalue="A" />
<batchinputline fieldname="P_SRTKZ" fieldvalue="1" />
<!-- Multiple selection screens -->
<batchinputlist program="SAPLALDB" dynpro="3000"
okcodefieldname="BDC_OKCODE" okcodepagedown="=P+"
okcodeaccept="=ACPT" fieldname="RSCSEL-SLOW_I"
attributname="AT_BANF_NUMBER" linesperpage="9" />
<!-- 1st screen -->
<batchinputline program="RM06BF00" dynpro="1000"
dynprobegin="X"/>
<batchinputline fieldname="BDC_OKCODE"
fieldvalue="=ONLI"/>
</transaction>
</r3transactionconf>