I_WorkerSearch
Workforce CDS view for OP
I_WorkerSearch is a Composite CDS View that provides data about "Workforce CDS view for OP" in SAP S/4HANA. It reads from 8 data sources and exposes 17 fields with key field EmploymentInternalID.
Data Sources (8)
| Source | Alias | Join Type |
|---|---|---|
| I_WorkforceAssignment | assgmt | from |
| I_WorkforceAssignmentDetails | assgmtdets | inner |
| I_BusinessPartner | bp | inner |
| I_BPUsrExternalID | bpexid | inner |
| I_CompanyCode | cocd | left_outer |
| I_EmployeeskillTags | EmployeeSkillTags | left_outer |
| I_WorkforceAssignmentJobTitle | jobnm | left_outer |
| I_WorkforceAssignmentKeyMap | keymap | inner |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IWORKERSEARCH | view | |
| AbapCatalog.preserveKey | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| EndUserText.label | Workforce CDS view for OP | view |
Fields (17)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | EmploymentInternalID | I_WorkforceAssignment | WorkforceAssignment | |
| EmployeeInternalID | I_BusinessPartner | BusinessPartner | ||
| Employee | I_BPUsrExternalID | BPIdentificationNumber | ||
| EmployeeFullName | I_BusinessPartner | PersonFullName | ||
| FamilyName | I_BusinessPartner | LastName | ||
| GivenName | I_BusinessPartner | FirstName | ||
| BusinessPartnerNicknameLabel | I_BusinessPartner | BusinessPartnerNicknameLabel | ||
| CompanyCode | I_WorkforceAssignmentDetails | CompanyCode | ||
| CompanyCodeName | I_CompanyCode | CompanyCodeName | ||
| CostCenter | I_WorkforceAssignmentDetails | CostCenter | ||
| BusinessPartnerType | ||||
| Job | I_WorkforceAssignmentDetails | WorkforcePersonJobCode | ||
| JobName | I_WorkforceAssignmentJobTitle | WorkforcePersonJobTitle | ||
| EmployeeSkillTagName | I_EmployeeskillTags | EmployeeSkillTagName | ||
| Supplier | ||||
| AuthorizationGroup | I_BusinessPartner | AuthorizationGroup | ||
| IsBusinessPurposeCompleted | I_BusinessPartner | IsBusinessPurposeCompleted |
@AbapCatalog.sqlViewName: 'IWORKERSEARCH'
@AbapCatalog.preserveKey:true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@EndUserText.label: 'Workforce CDS view for OP'
define view I_WorkerSearch
as select from I_WorkforceAssignment as assgmt
inner join I_WorkforceAssignmentDetails as assgmtdets on assgmtdets.WorkforceAssignment = assgmt.WorkforceAssignment
and
( (
assgmtdets.WorkforceAssgmtStartDate <= $session.system_date
and assgmtdets.WorkforceAssgmtEndDate >= $session.system_date)
or
(
assgmtdets.WorkforceAssgmtStartDate >= $session.system_date
))
inner join I_BusinessPartner as bp on bp.BusinessPartner = assgmt.BusinessPartner
and bp.BusinessPartnerCategory = '1'
inner join I_WorkforceAssignmentKeyMap as keymap on keymap.WorkforceAssignment = assgmt.WorkforceAssignment
// and keymap.BusinessPartner = bp.BusinessPartner
// inner join but000 as bp on bp.partner = assgmt.business_partner_id
// and bp.type = '1'
inner join I_BPUsrExternalID as bpexid on bp.BusinessPartner = bpexid.BusinessPartner
and(
bpexid.BPIdentificationType = 'HCM001'
or // HCM001 - Employee ID
bpexid.BPIdentificationType = 'HCM030'
or // HCM030 - Service Agent
bpexid.BPIdentificationType = 'HCM031'
) // HCM031 - Freelancer
left outer join I_CompanyCode as cocd on cocd.CompanyCode = assgmtdets.CompanyCode
// left outer join I_CostCenter as cocs on cocs.CostCenter = assgmtdets.cost_center
// and assgmtdets.company_code = cocs.CompanyCode
left outer join I_WorkforceAssignmentJobTitle as jobnm on jobnm.WorkforcePersonJobCode = assgmtdets.WorkforcePersonJobCode
and jobnm.WorkforceAssgmtEndDate = '99991231'
and jobnm.Language = $session.system_language
left outer join I_EmployeeskillTags as EmployeeSkillTags on keymap.CentralPerson = EmployeeSkillTags.PersonnelNumber
and EmployeeSkillTags.EmployeeSkillTagType = 'U'
// left outer join /shcm/d_cnt_wrk as roleflg on assgmt.workforce_assgmt_id = roleflg.pernr
// left outer join but050 as ServicePerformer on ServicePerformer.partner2 = bp.partner
// and ServicePerformer.reltyp = 'BUR025'
// association [0..1] to but000 as _Supplier on _Supplier.partner = ServicePerformer.partner1
{
key assgmt.WorkforceAssignment as EmploymentInternalID,
// key assgmtdets.workforce_assgmt_id as EmploymentInternalID,
bp.BusinessPartner as EmployeeInternalID,
bpexid.BPIdentificationNumber as Employee,
bp.PersonFullName as EmployeeFullName,
bp.LastName as FamilyName,
bp.FirstName as GivenName,
bp.BusinessPartnerNicknameLabel as BusinessPartnerNicknameLabel,
assgmtdets.CompanyCode as CompanyCode,
cocd.CompanyCodeName,
////
assgmtdets.CostCenter as CostCenter,
// cocs._Text[1: Language = $session.system_language].CostCenterName as CostCenterName,
'' as BusinessPartnerType,
assgmtdets.WorkforcePersonJobCode as Job,
jobnm.WorkforcePersonJobTitle as JobName,
EmployeeSkillTags.EmployeeSkillTagName as EmployeeSkillTagName,
'' as Supplier,
bp.AuthorizationGroup as AuthorizationGroup,
bp.IsBusinessPurposeCompleted as IsBusinessPurposeCompleted
}
where
// ( assgmtdets.cost_center <> '' and assgmtdets.company_code <> '' )
(
/* (
assgmtdets.cost_center <> ''
or assgmt.is_contingent_worker = 'X'
)
and */
assgmtdets.CompanyCode <> ''
and
assgmtdets.WorkforceAssignmentStatus = '1'
)
and(
(
assgmt.WorkforceAssgmtStartDate <= $session.system_date
and assgmt.WorkforceAssgmtEndDate >= $session.system_date
)
or(
assgmt.WorkforceAssgmtStartDate >= $session.system_date
)
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BPUSREXTERNALID",
"I_BUSINESSPARTNER",
"I_COMPANYCODE",
"I_EMPLOYEESKILLTAGS",
"I_WORKFORCEASSIGNMENT",
"I_WORKFORCEASSIGNMENTDETAILS",
"I_WORKFORCEASSIGNMENTJOBTITLE",
"I_WORKFORCEASSIGNMENTKEYMAP"
],
"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