P_MfgInspCharcHistory
P_MfgInspCharcHistory is a Composite CDS View in SAP S/4HANA. It reads from 5 data sources (P_MfgInspCharHistoryAll, I_InspectionCharacteristic, I_LogisticsOrderBasic, I_OpActyInstceNtwkElmntBasic, I_OrderOperationBasic) and exposes 51 fields with key fields InspectionLot, InspPlanOperationInternalID, InspectionCharacteristic, InspectionSubsetInternalID, InspResultValueInternalID.
Data Sources (5)
| Source | Alias | Join Type |
|---|---|---|
| P_MfgInspCharHistoryAll | InspCharHistory | from |
| I_InspectionCharacteristic | InspectionCharacteristic | inner |
| I_LogisticsOrderBasic | LogisticsOrder | inner |
| I_OpActyInstceNtwkElmntBasic | OpActyInstceNtwkElmnt | inner |
| I_OrderOperationBasic | OrderOperationBasic | inner |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PMFGICHISTORY | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (51)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | InspectionLot | P_MfgInspCharHistoryAll | InspectionLot | |
| InspectionLot | ||||
| KEY | InspPlanOperationInternalID | P_MfgInspCharHistoryAll | InspPlanOperationInternalID | |
| KEY | InspectionCharacteristic | P_MfgInspCharHistoryAll | InspectionCharacteristic | |
| KEY | InspectionSubsetInternalID | P_MfgInspCharHistoryAll | InspectionSubsetInternalID | |
| KEY | InspResultValueInternalID | P_MfgInspCharHistoryAll | InspResultValueInternalID | |
| KEY | ChangeDocDatabaseTableField | P_MfgInspCharHistoryAll | ChangeDocDatabaseTableField | |
| KEY | ChangeDocument | P_MfgInspCharHistoryAll | ChangeDocument | |
| KEY | MfgExecDocumentCategory | P_MfgInspCharHistoryAll | MfgExecDocumentCategory | |
| ManufacturingOrder | ||||
| ManufacturingOrder | P_MfgInspCharHistoryAll | ManufacturingOrder | ||
| ProductionOrderOperationActy | I_InspectionCharacteristic | ProductionOrderOperationActy | ||
| ProductionOrderOpActyVers | I_InspectionCharacteristic | ProductionOrderOpActyVers | ||
| InspSpecDecimalPlaces | ||||
| InspectionSpecificationUnit | ||||
| InspectionSpecificationText | I_InspectionCharacteristic | InspectionSpecificationText | ||
| OpActyNtwkInstance | I_OpActyInstceNtwkElmntBasic | OpActyNtwkInstance | ||
| OpActyNtwkElement | I_OpActyInstceNtwkElmntBasic | OpActyNtwkElement | ||
| OperationActivityName | ||||
| OrderInternalID | I_OpActyInstceNtwkElmntBasic | OrderInternalID | ||
| OrderOperationInternalID | I_OpActyInstceNtwkElmntBasic | OrderOperationInternalID | ||
| Operation | I_OrderOperationBasic | Operation_2 | ||
| Sequence | I_OrderOperationBasic | Sequence | ||
| OperationText | I_OrderOperationBasic | OperationText | ||
| WorkCenterInternalID | I_OrderOperationBasic | WorkCenterInternalID | ||
| WorkCenterTypeCode | ||||
| Plant | I_OrderOperationBasic | Plant | ||
| OpActyNtwkSegmentType | ||||
| OperationActivityNetwork | ||||
| OpActyNtwkVersionCounter | I_OpActyInstceNtwkElmntBasic | OpActyNtwkVersionCounter | ||
| OpActyNtwkElementExternalID | I_OpActyInstceNtwkElmntBasic | OpActyNtwkElementExternalID | ||
| OperationActivity | I_OpActyInstceNtwkElmntBasic | OperationActivity | ||
| OperationActyVersionCounter | I_OpActyInstceNtwkElmntBasic | OperationActyVersionCounter | ||
| StatusAndActionSchema | I_OpActyInstceNtwkElmntBasic | StatusAndActionSchema | ||
| CreatedByUser | P_MfgInspCharHistoryAll | CreatedByUser | ||
| CreationDate | P_MfgInspCharHistoryAll | CreationDate | ||
| CreationTime | P_MfgInspCharHistoryAll | CreationTime | ||
| clientNULLasCreationDateTime | ||||
| ChangeDocNewFieldValue | P_MfgInspCharHistoryAll | ChangeDocNewFieldValue | ||
| ChangeDocPreviousFieldValue | P_MfgInspCharHistoryAll | ChangeDocPreviousFieldValue | ||
| InspectionResultMeanValue | ||||
| CharacteristicAttributeCodeGrp | ||||
| CharacteristicAttributeCode | ||||
| InspectionResultMeasuredValue | ||||
| InspectionResultAttribute | ||||
| InspectionValuationResult | ||||
| ShopFloorItem | P_MfgInspCharHistoryAll | ShopFloorItem | ||
| SystemMessageIdentification | ||||
| MfgExecHistMsgVarblField1 | 70 | |||
| MfgExecHistMsgVarblField4 | 75 | |||
| InspectionResultLongText | InspCharcRsltLongText | InspectionResultLongText |
@AbapCatalog.sqlViewName: 'PMFGICHISTORY'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_MfgInspCharcHistory
as select from P_MfgInspCharHistoryAll as InspCharHistory
inner join I_LogisticsOrderBasic as LogisticsOrder on LogisticsOrder.OrderID = InspCharHistory.ManufacturingOrder
inner join I_InspectionCharacteristic as InspectionCharacteristic on InspectionCharacteristic.InspectionLot = LogisticsOrder.InspectionLot
and InspectionCharacteristic.InspPlanOperationInternalID = InspCharHistory.InspPlanOperationInternalID
and InspectionCharacteristic.InspectionCharacteristic = InspCharHistory.InspectionCharacteristic
inner join I_OrderOperationBasic as OrderOperationBasic on OrderOperationBasic.OrderInternalID = LogisticsOrder.OrderInternalID
and OrderOperationBasic.OrderOperationInternalID = InspCharHistory.InspPlanOperationInternalID
inner join I_OpActyInstceNtwkElmntBasic as OpActyInstceNtwkElmnt on OpActyInstceNtwkElmnt.OrderInternalID = OrderOperationBasic.OrderInternalID
and OpActyInstceNtwkElmnt.OrderOperationInternalID = OrderOperationBasic.OrderOperationInternalID
and OpActyInstceNtwkElmnt.OperationActivity = InspectionCharacteristic.ProductionOrderOperationActy
and OpActyInstceNtwkElmnt.OperationActyVersionCounter = InspectionCharacteristic.ProductionOrderOpActyVers
left outer to one join P_MfgInspCharcRsltLongTextAll as InspCharcRsltLongText on InspCharcRsltLongText.InspectionLot = InspCharHistory.InspectionLot
and InspCharcRsltLongText.InspPlanOperationInternalID = InspCharHistory.InspPlanOperationInternalID
and InspCharcRsltLongText.InspectionCharacteristic = InspCharHistory.InspectionCharacteristic
and InspCharcRsltLongText.InspectionSubsetInternalID = InspCharHistory.InspectionSubsetInternalID
and InspCharcRsltLongText.Language = $session.system_language
{
key InspCharHistory.InspectionLot, --InspectionCharacteristic.InspectionLot,
key InspCharHistory.InspPlanOperationInternalID,
key InspCharHistory.InspectionCharacteristic,
key InspCharHistory.InspectionSubsetInternalID,
key InspCharHistory.InspResultValueInternalID,
key InspCharHistory.ChangeDocDatabaseTableField,
key InspCharHistory.ChangeDocument,
key InspCharHistory.MfgExecDocumentCategory,
cast(case
when InspCharHistory.InspLotHasSubsets = 'X' then 'SAP_COLLECT_DATA_SFI'
else 'SAP_COLLECT_DATA_OA'
end as mpe_action_name_type ) as MfgProcgExecAction,
-- cast(LogisticsOrder.OrderID as mpe_production_order preserving type) as ManufacturingOrder,
InspCharHistory.ManufacturingOrder,
InspectionCharacteristic.ProductionOrderOperationActy,
InspectionCharacteristic.ProductionOrderOpActyVers,
cast(InspectionCharacteristic.InspSpecDecimalPlaces + InspCharHistory.InspResultNrOfAddlDcmlsPlaces as qdiff_dec_places) as InspSpecDecimalPlaces, --qdiff_dec_places
InspectionCharacteristic.InspectionSpecificationUnit,
InspectionCharacteristic.InspectionSpecificationText,
OpActyInstceNtwkElmnt.OpActyNtwkInstance,
OpActyInstceNtwkElmnt.OpActyNtwkElement,
OpActyInstceNtwkElmnt._OperationActivityText[1: Language=$session.system_language].OperationActivityName,
OpActyInstceNtwkElmnt.OrderInternalID,
OpActyInstceNtwkElmnt.OrderOperationInternalID,
OrderOperationBasic.Operation_2 as Operation,
OrderOperationBasic.Sequence,
OrderOperationBasic.OperationText,
OrderOperationBasic.WorkCenterInternalID,
'A' as WorkCenterTypeCode,
OrderOperationBasic.Plant,
cast('2' as mpe_oan_segment_type preserving type) as OpActyNtwkSegmentType, --For the time being ICs just can be collected in the produce segment
OpActyInstceNtwkElmnt.OperationActivityNetwork,
OpActyInstceNtwkElmnt.OpActyNtwkVersionCounter,
OpActyInstceNtwkElmnt.OpActyNtwkElementExternalID,
OpActyInstceNtwkElmnt.OperationActivity,
OpActyInstceNtwkElmnt.OperationActyVersionCounter,
OpActyInstceNtwkElmnt.StatusAndActionSchema,
InspCharHistory.CreatedByUser,
InspCharHistory.CreationDate,
InspCharHistory.CreationTime,
dats_tims_to_tstmp(InspCharHistory.CreationDate,InspCharHistory.CreationTime,abap_system_timezone( $session.client,'NULL' ),
$session.client,
'NULL' ) as CreationDateTime,
InspCharHistory.ChangeDocNewFieldValue,
InspCharHistory.ChangeDocPreviousFieldValue,
cast(0 as qmittelwrt) as InspectionResultMeanValue,
cast('' as qcodegrp) as CharacteristicAttributeCodeGrp,
cast('' as qcode) as CharacteristicAttributeCode,
cast(0 as qmesswert) as InspectionResultMeasuredValue,
cast('' as qattribut) as InspectionResultAttribute,
cast('' as qmbewertg) as InspectionValuationResult,
InspCharHistory.ShopFloorItem,
cast('MPE_EXEC_SFO' as msgid) as SystemMessageIdentification,
cast
( case when InspCharHistory.ChangeDocItemChangeType = 'I'
and InspCharHistory.InspLotHasSubsets = 'X'
and ( InspCharHistory.ChangeDocDatabaseTableField = 'MITTELWERT' or InspCharHistory.ChangeDocDatabaseTableField = 'CODE1' or InspCharHistory.ChangeDocDatabaseTableField = 'MESSWERT' )
then '129'
when InspCharHistory.ChangeDocItemChangeType = 'I'
and InspCharHistory.InspLotHasSubsets = ''
and ( InspCharHistory.ChangeDocDatabaseTableField = 'MITTELWERT' or InspCharHistory.ChangeDocDatabaseTableField = 'CODE1' or InspCharHistory.ChangeDocDatabaseTableField = 'MESSWERT' )
then '130'
when ( InspCharHistory.ChangeDocItemChangeType = 'I' or InspCharHistory.ChangeDocItemChangeType = 'U' )
and InspCharHistory.InspLotHasSubsets = 'X'
and InspCharHistory.ChangeDocDatabaseTableField = 'MBEWERTG'
then '135'
when ( InspCharHistory.ChangeDocItemChangeType = 'I' or InspCharHistory.ChangeDocItemChangeType = 'U' )
and InspCharHistory.InspLotHasSubsets = ''
and InspCharHistory.ChangeDocDatabaseTableField = 'MBEWERTG'
then '136'
when InspCharHistory.ChangeDocItemChangeType = 'I'
and InspCharHistory.InspLotHasSubsets = 'X'
and InspCharHistory.ChangeDocDatabaseTableField = 'PRUEFBEMKT'
then '188'
when InspCharHistory.ChangeDocItemChangeType = 'I'
and InspCharHistory.InspLotHasSubsets = ''
and InspCharHistory.ChangeDocDatabaseTableField = 'PRUEFBEMKT'
then '189'
when InspCharHistory.ChangeDocItemChangeType = 'U'
and InspCharHistory.InspLotHasSubsets = 'X'
and ( InspCharHistory.ChangeDocDatabaseTableField = 'MITTELWERT' or InspCharHistory.ChangeDocDatabaseTableField = 'CODE1' )
then '133'
when InspCharHistory.ChangeDocItemChangeType = 'U'
and InspCharHistory.InspLotHasSubsets = ''
and ( InspCharHistory.ChangeDocDatabaseTableField = 'MITTELWERT' or InspCharHistory.ChangeDocDatabaseTableField = 'CODE1' )
then '134'
when InspCharHistory.ChangeDocItemChangeType = 'U'
and InspCharHistory.InspLotHasSubsets = 'X'
and InspCharHistory.ChangeDocDatabaseTableField = 'PRUEFBEMKT'
then '190'
when InspCharHistory.ChangeDocItemChangeType = 'U'
and InspCharHistory.InspLotHasSubsets = ''
and InspCharHistory.ChangeDocDatabaseTableField = 'PRUEFBEMKT'
then '191'
when InspCharHistory.ChangeDocItemChangeType = 'D'
and InspCharHistory.InspLotHasSubsets = 'X'
then '131'
when InspCharHistory.ChangeDocItemChangeType = 'D'
and InspCharHistory.InspLotHasSubsets = ''
then '132'
else '000'
end as msgnr) as SystemMessageNumber,
70 as MfgExecHistMsgVarblField1, --->InspectionSpecificationText
7 as MfgExecHistMsgVarblField2, --->Serial number
case when InspCharHistory.ChangeDocItemChangeType = 'I' or InspCharHistory.ChangeDocItemChangeType = 'D'
then 75 --->new FIELD value
when InspCharHistory.ChangeDocDatabaseTableField = 'MBEWERTG'
then 75 --->new FIELD value
when InspCharHistory.ChangeDocItemChangeType = 'U'
then 71 --->old FIELD value
else 0
end as MfgExecHistMsgVarblField3,
75 as MfgExecHistMsgVarblField4,
InspCharcRsltLongText.InspectionResultLongText
}
where
InspectionCharacteristic.InspSpecIsChgDocRequired = 'X'
and LogisticsOrder.BillOfOperationsType = 'V'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_INSPECTIONCHARACTERISTIC",
"I_LOGISTICSORDERBASIC",
"I_OPACTYINSTCENTWKELMNTBASIC",
"I_OPERATIONACTIVITYTEXT",
"I_ORDEROPERATIONBASIC",
"P_MFGINSPCHARCRSLTLONGTEXTALL",
"P_MFGINSPCHARHISTORYALL"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA