SAP QM Pack — Quality
The quality pack covers the path from the inspection lot SAP creates to the usage decision that releases the material — through whatever the lab or the line operator measures.
Before installing, read SAP Packs — the wizard and the parameters are shared by all three packs.
The flow it solves
The most valuable part of the pack is step C: the MES does not need the inspection plan in its own database. It asks SAP which characteristics to measure, with nominal value, tolerances, unit and code catalog — and builds the operator screen from that. Change the plan in SAP, the screen changes.
Decisions you will have to make
Results per operation or per characteristic?
| Per operation (batched) | Per characteristic | |
|---|---|---|
| Messages | One per operation, with an array of results | One per measurement |
| When to use | The operator fills a form and submits it all | The instrument sends one measurement at a time |
| Volume | Lower | Higher |
Per operation is the recommendation. It is the only recipe in the pack where your system sends a
list — the resultados field is an array, one object per characteristic.
Inspection point
Only makes sense when the inspection plan is set up for in-process inspection (hourly, per pallet, per batch). If the operation is not configured that way in SAP, creating the point fails — the pack maps that error with this explanation.
The point’s free fields (USERC1 and friends) are useful to stamp shift, crew or production batch.
The recipe already exposes turno.
Usage decision
The usage decision requires the selected set from your plant’s QM Customizing, along with code group and code. There is no universal default — fill in the Usage decision selected set parameter in step 3 of the wizard with what the quality team gives you.
The usage decision is what moves stock: approving takes the material out of inspection stock into unrestricted use. It is the highest-impact recipe in the pack — worth activating last, once the results are trustworthy.
Gotchas in this pack
A required characteristic with no result blocks the usage decision. It is the most common reason for the UD to fail. The pack maps the error; the fix is making sure the MES recorded everything before deciding.
A quality notification is a create/save pair — in the same session. BAPI_QUALNOT_CREATE only
builds the notification in the RFC session’s memory. The Open notification recipe already calls
BAPI_QUALNOT_SAVE next, in the same session and with commit (see
follow-up calls). The standalone Save
notification recipe does not save a notification created by another message: each message opens
its own connection, and the first one’s notification does not exist in the second.
The pack does not create inspection lots: SAP does, from the goods movement or the order. If your plant needs ad-hoc inspection, that is QM configuration, not CMS.
Summary
26 recipes — 12 collection, 14 delivery — of which 11 essential.
Recipes
Inspection
| Recipe | Direction | SAP function | Solves |
|---|---|---|---|
| Inspection lot backlog ·essential | Collection | BAPI_INSPLOT_GETLIST | Lists the plant’s inspection lots still awaiting a usage decision — the lab work queue. |
| Inspection lot detail ·essential | Collection | BAPI_INSPLOT_GETDETAIL | General lot data: material, source order, quantities and status — the header of the MES inspection screen. |
| Inspection operations ·essential | Collection | BAPI_INSPOPER_GETLIST | The inspection plan operations inside the lot — each groups the characteristics the operator will measure. |
| Characteristics to measure ·essential | Collection | BAPI_INSPCHAR_GETREQUIREMENTS | Nominal value, tolerances, unit and catalog for a characteristic. What the MES needs to build the quality form without re-keying the plan. |
| Inspection points ·essential | Collection | BAPI_INSPPOINT_GETLIST | Lists inspection points already created in an operation — so the MES knows what was already recorded in the shift. |
| Inspection lot operations | Collection | BAPI_INSPLOT_GETOPERATIONS | Inspection lot operations. Recipe generated from the BAPI_INSPLOT_GETOPERATIONS signature in SAP. |
| Inspection lot status | Collection | BAPI_INSPLOT_GETSTATUS | Inspection lot status. Recipe generated from the BAPI_INSPLOT_GETSTATUS signature in SAP. |
Results
| Recipe | Direction | SAP function | Solves |
|---|---|---|---|
| Operation results, batched ·essential | Delivery | BAPI_INSPOPER_RECORDRESULTS | Records several results at once for one inspection operation. The recommended path for MES: one message per operation, not per characteristic. |
| Single characteristic result ·essential | Delivery | BAPI_INSPCHAR_SETRESULT | Records the result of a single characteristic. Useful when the instrument sends one measurement at a time. |
| Create inspection point ·essential | Delivery | BAPI_INSPPOINT_CREATEFROMDATA | In-process quality recording — hourly, per pallet, per batch. Creates the point the results will hang from. |
| Inspection operation detail | Collection | BAPI_INSPOPER_GETDETAIL | Inspection operation detail. Recipe generated from the BAPI_INSPOPER_GETDETAIL signature in SAP. |
| Operation characteristics | Collection | BAPI_INSPOPER_GETCHAR | Operation characteristics. Recipe generated from the BAPI_INSPOPER_GETCHAR signature in SAP. |
| Results already recorded | Collection | BAPI_INSPCHAR_GETRESULT | Results already recorded. Recipe generated from the BAPI_INSPCHAR_GETRESULT signature in SAP. |
| Inspection point requirements | Collection | BAPI_INSPPOINT_GETREQUIREMENTS | Inspection point requirements. Recipe generated from the BAPI_INSPPOINT_GETREQUIREMENTS signature in SAP. |
| Close inspection operation | Delivery | BAPI_INSPOPER_ACKNOWLEDGE | Close inspection operation. Recipe generated from the BAPI_INSPOPER_ACKNOWLEDGE signature in SAP. |
| Change inspection point | Delivery | BAPI_INSPPOINT_CHANGE | Change inspection point. Recipe generated from the BAPI_INSPPOINT_CHANGE signature in SAP. |
Usage decision
| Recipe | Direction | SAP function | Solves |
|---|---|---|---|
| Usage decision ·essential | Delivery | BAPI_INSPLOT_SETUSAGEDECISION | Approves or rejects the inspection lot and moves the blocked stock. The step that releases material for use. |
Notification
| Recipe | Direction | SAP function | Solves |
|---|---|---|---|
| Create quality notification ·essential | Delivery | BAPI_QUALNOT_CREATE | Records a deviation found on the shop floor as a quality notification, already linked to material and batch. |
| Save quality notification ·essential | Delivery | BAPI_QUALNOT_SAVE | Persists the notification created in the previous step. The mandatory second half of the notification create/save pair. |
| Quality notification | Collection | BAPI_QUALNOT_GETDETAIL | Quality notification. Recipe generated from the BAPI_QUALNOT_GETDETAIL signature in SAP. |
| Add data to the notification | Delivery | BAPI_QUALNOT_ADD_DATA | Add data to the notification. Recipe generated from the BAPI_QUALNOT_ADD_DATA signature in SAP. |
| Change notification data | Delivery | BAPI_QUALNOT_MODIFY_DATA | Change notification data. Recipe generated from the BAPI_QUALNOT_MODIFY_DATA signature in SAP. |
| Release / put in process | Delivery | BAPI_QUALNOT_RELSTAT | Release / put in process. Recipe generated from the BAPI_QUALNOT_RELSTAT signature in SAP. |
| Complete notification | Delivery | BAPI_QUALNOT_COMPLSTAT | Complete notification. Recipe generated from the BAPI_QUALNOT_COMPLSTAT signature in SAP. |
| Change user status | Delivery | BAPI_QUALNOT_CHANGEUSRSTAT | Change user status. Recipe generated from the BAPI_QUALNOT_CHANGEUSRSTAT signature in SAP. |
| Change task status | Delivery | BAPI_QUALNOT_CHANGETSKSTAT | Change task status. Recipe generated from the BAPI_QUALNOT_CHANGETSKSTAT signature in SAP. |
Field contracts
Inspection lot backlog
PREFIXO_QM_LOTE_LISTA — Your system provides these fields when calling the collection URL.
Needs review before activating. Created inactive: sweeps the plant backlog on every run, capped at 200 lots. Set the interface schedule before activating.
No input fields: the recipe runs on the scheduler, with the values fixed in the pack parameters.
Inspection lot detail
PREFIXO_QM_LOTE_DETALHE — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | NUMBER |
Inspection operations
PREFIXO_QM_OPERACOES — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
Characteristics to measure
PREFIXO_QM_CARACTERISTICAS — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
caracteristica | yes | INSPCHAR |
Inspection points
PREFIXO_QM_PONTOS_INSPECAO — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
Operation results, batched
PREFIXO_QM_RES_OPERACAO — Your system sends these fields in the message body.
Needs review before activating. The “resultados” field is an ARRAY of objects, one per characteristic, in BAPI2045D2 shape (INSPCHAR, MEAN_VALUE, EVALUATION, CLOSED…). The only recipe where the MES sends a list.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
resultados | yes | CHAR_RESULTS |
Single characteristic result
PREFIXO_QM_RES_CARACT — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
caracteristica | yes | INSPCHAR |
valorMedido | yes | CHAR_RESULT.MEAN_VALUE |
avaliacao | — | CHAR_RESULT.EVALUATION |
encerrar | — | CHAR_RESULT.CLOSED |
inspetor | — | CHAR_RESULT.INSPECTOR |
quantidadeDefeitos | — | CHAR_RESULT.DEFECTS |
Create inspection point
PREFIXO_QM_PONTO_INSPECAO — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | DATA.INSPLOT |
operacaoInspecao | yes | DATA.INSPOPER |
quantidade | — | DATA.QUANTITY |
unidade | — | DATA.UNIT |
equipamento | — | DATA.EQUIPMENT |
material | — | DATA.MATERIAL |
observacao | — | DATA.REMARK |
turno | — | DATA.USERC1 |
Usage decision
PREFIXO_QM_DECISAO_USO — Your system sends these fields in the message body.
Needs review before activating. Fill the “Usage decision selected set” binding with the SELECTED SET from your QM Customizing — without it SAP rejects the decision.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | NUMBER |
grupoCodigo | yes | UD_DATA.UD_CODE_GROUP |
codigoDecisao | yes | UD_DATA.UD_CODE |
observacao | — | UD_DATA.UD_TEXT_LINE |
Create quality notification
PREFIXO_QM_NOTIF_ABRIR — Your system sends these fields in the message body.
Needs review before activating. Creates AND saves the quality notification in one call: BAPI_QUALNOT_CREATE and, in the same session, BAPI_QUALNOT_SAVE (under “Call next”), with commit. The final number comes in BAPI_QUALNOT_SAVE.
| Field | Required | SAP field |
|---|---|---|
descricao | yes | NOTIFHEADER.SHORT_TEXT |
material | — | NOTIFHEADER.MATERIAL |
lote | — | NOTIFHEADER.BATCH |
prioridade | — | NOTIFHEADER.PRIORITY |
dataOcorrencia | — | NOTIFHEADER.NOTIF_DATE |
Save quality notification
PREFIXO_QM_NOTIF_GRAVAR — Your system sends these fields in the message body.
Needs review before activating. Only saves a notification still in the memory of the SAME RFC session — since each CMS message opens its own connection, this Delivery alone does not save the notification created by “Open notification”. Use “Open notification”, which already creates and saves in one call.
| Field | Required | SAP field |
|---|---|---|
numeroNotificacao | yes | NUMBER |
Inspection lot operations
PREFIXO_QM_INSPLOT_GETOPERATIONS — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Inspection lot status
PREFIXO_QM_INSPLOT_GETSTATUS — Your system provides these fields when calling the collection URL.
Needs review before activating. Created INACTIVE: the pack cannot guess the content — preencher a estrutura LANGUAGE. Open the definition, use the “SAP Function Parameters” popup to fill it in, then activate.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Inspection operation detail
PREFIXO_QM_INSPOPER_GETDETAIL — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
Operation characteristics
PREFIXO_QM_INSPOPER_GETCHAR — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
Results already recorded
PREFIXO_QM_INSPCHAR_GETRESULT — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
caracteristica | yes | INSPCHAR |
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
Inspection point requirements
PREFIXO_QM_INSPPOINT_GETREQUIREMENTS — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
Quality notification
PREFIXO_QM_QUALNOT_GETDETAIL — Your system provides these fields when calling the collection URL.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Close inspection operation
PREFIXO_QM_INSPOPER_ACKNOWLEDGE — Your system sends these fields in the message body.
Needs review before activating. Created INACTIVE: the pack cannot guess the content — preencher a tabela HANDHELD_WORKLIST. Open the definition, use the “SAP Function Parameters” popup to fill it in, then activate.
| Field | Required | SAP field |
|---|---|---|
handheldApplication | yes | HANDHELD_APPLICATION |
Change inspection point
PREFIXO_QM_INSPPOINT_CHANGE — Your system sends these fields in the message body.
Needs review before activating. Created INACTIVE: the pack cannot guess the content — preencher a estrutura DATA. Open the definition, use the “SAP Function Parameters” popup to fill it in, then activate.
| Field | Required | SAP field |
|---|---|---|
loteInspecao | yes | INSPLOT |
operacaoInspecao | yes | INSPOPER |
pontoInspecao | yes | INSPPOINT |
Add data to the notification
PREFIXO_QM_QUALNOT_ADD_DATA — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Change notification data
PREFIXO_QM_QUALNOT_MODIFY_DATA — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Release / put in process
PREFIXO_QM_QUALNOT_RELSTAT — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Complete notification
PREFIXO_QM_QUALNOT_COMPLSTAT — Your system sends these fields in the message body.
Needs review before activating. Created INACTIVE: the pack cannot guess the content — preencher a estrutura SYSTSTAT. Open the definition, use the “SAP Function Parameters” popup to fill it in, then activate.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Change user status
PREFIXO_QM_QUALNOT_CHANGEUSRSTAT — Your system sends these fields in the message body.
Needs review before activating. Created INACTIVE: the pack cannot guess the content — preencher a estrutura USR_STATUS. Open the definition, use the “SAP Function Parameters” popup to fill it in, then activate.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
Change task status
PREFIXO_QM_QUALNOT_CHANGETSKSTAT — Your system sends these fields in the message body.
| Field | Required | SAP field |
|---|---|---|
numero | yes | NUMBER |
taskCode | yes | TASK_CODE |
taskKey | yes | TASK_KEY |