Mapeamento de campos/tabelas em formato técnico (ABAP)
Padrão de resposta para mapeamentos de campos que devem ser expressos como uma sequência de SELECT em tabelas — alternativa técnica ao mapeamento via Business Object (BOPF).
Quando usar
- Usuário pede mapeamento "por tabelas", "sem BOPF", "forma mais técnica para o ABAP".
- Usuário envia um mapeamento já existente em formato BO/nó e pede para reescrever em tabelas.
- Usuário envia um print/trecho de planilha com lógica do tipo "Campo X, Tabela Y, Recuperar Z onde W = valor" e pede para modelar nesse padrão.
Estrutura da resposta
1. Texto introdutório (breve)
Antes da tabela, liste rapidamente cada tabela técnica envolvida no mapeamento e uma descrição curta do que ela representa (ex.: "/SCMTMS/D_TORROT — cabeçalho/raiz da Ordem de Frete"). Uma linha por tabela, sem parágrafos longos.
2. Tabela de mapeamento
Use exatamente estas 4 colunas, nesta ordem:
| Etapa |
Tabela |
Atributo de entrada |
Atributo de saída |
| 1 |
/NOME/TABELA |
CAMPO_CHAVE = valor_de_entrada |
CAMPO_RETORNO |
Regras de preenchimento:
- Etapa: número sequencial da consulta. Se várias colunas de saída dependem do mesmo resultado de uma etapa anterior (consultas em paralelo, não uma cadeia única), repita o número da etapa em cada uma e identifique com um rótulo após o número (ex.:
2 — Incoterms, 2 — Placa, 2 — Motorista).
- Tabela: nome técnico da tabela em
code (crase simples), sem alias.
- Atributo de entrada: condição(ões) do
WHERE, no formato CAMPO = origem_do_valor. Quando o valor de entrada vem de uma etapa anterior, referencie pelo nome do campo de saída daquela etapa (nunca use placeholders genéricos como &0/&1).
- Múltiplas condições: separe sempre com a letra "E" maiúscula (nunca "AND").
- Atributo de saída: nome técnico do campo retornado pelo
SELECT.
- Se uma consulta pode retornar mais de um registro (relação 1:N), adicione uma observação curta abaixo da tabela avisando que deve ser tratada como tabela interna (não
SELECT SINGLE).
3. Sinalização de origem
Sempre que o mapeamento vier de especificação funcional anexada, marcar com 📄 e citar o documento/seção. Quando completado com conhecimento geral de SAP (ex.: nome de campo não confirmado na EF), marcar com 📘 e alertar sobre necessidade de confirmação (Z-table, enhancement, BAdI).
Exemplo de referência
Cenário: a partir do TOR_ID, obter Remessa, Incoterms, Placa e Motorista (consultas em paralelo a partir de uma etapa comum).
Tabelas envolvidas:
/SCMTMS/D_TORROT — cabeçalho/raiz da Ordem de Frete (TOR).
/SCMTMS/D_TORDRF — referências de documento da OF (ex.: remessa vinculada).
/SCMTMS/D_TORITE — itens da OF (produto, recurso/veículo, motorista).
| Etapa |
Tabela |
Atributo de entrada |
Atributo de saída |
| 1 |
/SCMTMS/D_TORROT |
TOR_ID = OF informada |
DB_KEY |
| 2 — Remessa |
/SCMTMS/D_TORDRF |
PARENT_KEY = DB_KEY E BTD_TCO = '58' |
BTD_ID |
| 2 — Incoterms |
/SCMTMS/D_TORITE |
PARENT_KEY = DB_KEY E ITEM_TYPE = 'PRD' |
INC_CLASS_CODE |
| 2 — Placa |
/SCMTMS/D_TORITE |
PARENT_KEY = DB_KEY E ITEM_TYPE = 'TRUC' |
PLATENUMBER |
| 2 — Motorista |
/SCMTMS/D_TORITE |
PARENT_KEY = DB_KEY E ITEM_CAT = 'DRI' |
RES_ID |
Observação: a busca de Remessa (etapa 2) pode retornar mais de um registro — tratar como tabela interna.
O que evitar
- Não usar frases como "navegar até o BO", "nó", "atributo de saída do BO" — isso é o formato BOPF, não o formato de tabela.
- Não usar
AND em inglês nas condições.
- Não usar placeholders genéricos (
&0, &1) no lugar do nome real do campo de entrada.
- Não inventar nome de tabela/campo sem base em especificação anexada ou em conhecimento geral de SAP — se não houver base, dizer isso explicitamente.
1---2name: mapeamento-tabelas-abap3description: Use esta skill sempre que o usuário pedir um mapeamento de campos/tabelas SAP em formato técnico de tabela (SELECT direto), explicitamente "sem BOPF", "por tabelas", "forma técnica para o ABAP", ou pedir para reescrever/modelar um mapeamento que hoje está descrito via navegação em Business Object (BO) para o formato de acesso direto a tabela. Aplica-se a qualquer módulo (SD, MM, TM, LE, FI) sempre que o destino final for um SELECT em tabela transparente/técnica, não um node de BOPF. Não usar quando o usuário pedir explicitamente o mapeamento via BO/BOPF (nó, atributo de saída do BO) — nesse caso, manter o formato de navegação por Business Object.4---56# Mapeamento de campos/tabelas em formato técnico (ABAP)78Padrão de resposta para mapeamentos de campos que devem ser expressos como uma sequência de `SELECT` em tabelas — alternativa técnica ao mapeamento via Business Object (BOPF).910## Quando usar1112- Usuário pede mapeamento "por tabelas", "sem BOPF", "forma mais técnica para o ABAP".13- Usuário envia um mapeamento já existente em formato BO/nó e pede para reescrever em tabelas.14- Usuário envia um print/trecho de planilha com lógica do tipo "Campo X, Tabela Y, Recuperar Z onde W = valor" e pede para modelar nesse padrão.1516## Estrutura da resposta1718### 1. Texto introdutório (breve)1920Antes da tabela, liste rapidamente cada tabela técnica envolvida no mapeamento e uma descrição curta do que ela representa (ex.: "`/SCMTMS/D_TORROT` — cabeçalho/raiz da Ordem de Frete"). Uma linha por tabela, sem parágrafos longos.2122### 2. Tabela de mapeamento2324Use exatamente estas 4 colunas, nesta ordem:2526| Etapa | Tabela | Atributo de entrada | Atributo de saída |27|---|---|---|---|28| 1 | `/NOME/TABELA` | `CAMPO_CHAVE = valor_de_entrada` | `CAMPO_RETORNO` |2930Regras de preenchimento:3132- **Etapa**: número sequencial da consulta. Se várias colunas de saída dependem do *mesmo* resultado de uma etapa anterior (consultas em paralelo, não uma cadeia única), repita o número da etapa em cada uma e identifique com um rótulo após o número (ex.: `2 — Incoterms`, `2 — Placa`, `2 — Motorista`).33- **Tabela**: nome técnico da tabela em `code` (crase simples), sem alias.34- **Atributo de entrada**: condição(ões) do `WHERE`, no formato `CAMPO = origem_do_valor`. Quando o valor de entrada vem de uma etapa anterior, referencie pelo **nome do campo de saída daquela etapa** (nunca use placeholders genéricos como `&0`/`&1`).35- **Múltiplas condições**: separe sempre com a letra **"E"** maiúscula (nunca "AND").36- **Atributo de saída**: nome técnico do campo retornado pelo `SELECT`.37- Se uma consulta pode retornar mais de um registro (relação 1:N), adicione uma observação curta abaixo da tabela avisando que deve ser tratada como tabela interna (não `SELECT SINGLE`).3839### 3. Sinalização de origem4041Sempre que o mapeamento vier de especificação funcional anexada, marcar com 📄 e citar o documento/seção. Quando completado com conhecimento geral de SAP (ex.: nome de campo não confirmado na EF), marcar com 📘 e alertar sobre necessidade de confirmação (Z-table, enhancement, BAdI).4243## Exemplo de referência4445Cenário: a partir do TOR_ID, obter Remessa, Incoterms, Placa e Motorista (consultas em paralelo a partir de uma etapa comum).4647Tabelas envolvidas:48- `/SCMTMS/D_TORROT` — cabeçalho/raiz da Ordem de Frete (TOR).49- `/SCMTMS/D_TORDRF` — referências de documento da OF (ex.: remessa vinculada).50- `/SCMTMS/D_TORITE` — itens da OF (produto, recurso/veículo, motorista).5152| Etapa | Tabela | Atributo de entrada | Atributo de saída |53|---|---|---|---|54| 1 | `/SCMTMS/D_TORROT` | `TOR_ID = OF informada` | `DB_KEY` |55| 2 — Remessa | `/SCMTMS/D_TORDRF` | `PARENT_KEY = DB_KEY` E `BTD_TCO = '58'` | `BTD_ID` |56| 2 — Incoterms | `/SCMTMS/D_TORITE` | `PARENT_KEY = DB_KEY` E `ITEM_TYPE = 'PRD'` | `INC_CLASS_CODE` |57| 2 — Placa | `/SCMTMS/D_TORITE` | `PARENT_KEY = DB_KEY` E `ITEM_TYPE = 'TRUC'` | `PLATENUMBER` |58| 2 — Motorista | `/SCMTMS/D_TORITE` | `PARENT_KEY = DB_KEY` E `ITEM_CAT = 'DRI'` | `RES_ID` |5960Observação: a busca de Remessa (etapa 2) pode retornar mais de um registro — tratar como tabela interna.6162## O que evitar6364- Não usar frases como "navegar até o BO", "nó", "atributo de saída do BO" — isso é o formato BOPF, não o formato de tabela.65- Não usar `AND` em inglês nas condições.66- Não usar placeholders genéricos (`&0`, `&1`) no lugar do nome real do campo de entrada.67- Não inventar nome de tabela/campo sem base em especificação anexada ou em conhecimento geral de SAP — se não houver base, dizer isso explicitamente.