# Mapeamento Tabelas Abap

> 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.

- Skill: `farkzerah/mapeamento-tabelas-abap` (Agent Skill)
- Install (CLI): `npx skillmds@latest add farkzerah/mapeamento-tabelas-abap`
- Raw SKILL.md: https://api.skillmd.com/api/skills/farkzerah/mapeamento-tabelas-abap/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: farkzerah (https://skillmd.com/u/farkzerah)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/farkzerah/mapeamento-tabelas-abap

---


# 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.

