[{ALLOW view All}]
[{ALLOW edit Authenticated}]
Interfacing via Business Objects (BAPI/BAdl)
* Access direct OR via RFC
* Synchrone BAPIs > RFC
* Asynchrone BAPIs > ALE

!Transactions
|SWO1|Business Object Repository
|BAPI|Bapi Explorer
|SE18|BAdI Builder Definition
|SE19|BAdI Builder


!Tables
|TBDBA|Mapping BAPIs to ALE
|SWOTDQ|Verb Parameters, Exceptions

!Payroll BAdl
{{{
HRPAY99_KTO           " Allows different operations related to the payroll account
HRPAY00_PRE_DME       " Exit for the Preliminary Program Data Medium Exchange
HRPAY00_PAYMENTS      " Exit for the Bank Transfer Interface CL_HRPAY00_PAYMENTS
HRPAY00_ESS_PAYSLIP   " Check if remuneration statement is only accessible using ESS
HRPAY00_COL_DME_KEYS  " Summary Key for Collective Bank Transfers
HRPAY00_COL_DME       " Purpose of the Collective Bank Transfer
BADI_OCWB_REVERSAL    " Off-Cycle Workbench:  Exclude payment for cancellation
HR_PY_OUT_OF_SEQ      " Country Exits for Payroll Main Routine
HR_PY_ENQUEUE         " BAdi: Additional Activities for Locked Employees
HR_PY_CLST_DISP       " PY_PAYRESULT: Country exit before table display
HR_PY_AUTH_PU01       " Customer-specific authorization check in PU01
}}}

!Usage
Transaction
{{{
BapiService.TransactionCommit()
BapiService.TransactionRollback()
CALL FUNCTION 'DEQUEUE_ALL' .
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'

BAPI can call 'COMMIT WORK' itself, but this must be mentioned in documentation
}}}
Documentation
{{{
HelpValues.GetList()
BapiService.FieldHelpGetDocu()
BapiService.InterfaceGetDocu()
BapiService.HyperLinkGetText()
BapiService.HyperLinkGetText()
}}}
Errors	
{{{
BapiService.MessageGetDetail()
BapiService.ApplicationLogGetDetail()
All provide return parameter "Return" 
A - Abort
E - Error
}}}
Konversion
{{{
BapiService.DataConversionInt2Ext1()
BapiService.DataConversionExt2Int1()
}}}
Read
{{{
GetList()
GetDetail()
GetStatus()
ExistenceCheck()
}}}
CRUD
{{{
Create() oder CreateFromData()
Change()
Delete() und Undelete()
Cancel()
Mass:	ChangeMultiple(), CreateMultiple(), DeleteMultiple() ...
Copy: 	Replicate() und SaveReplica()
}}}
Other
{{{	
PERFORM <routine> ON COMMIT
CALL <Business-Objektname>_SAVEBUFFER IN UPDATE TASK

ODATA / Gateway
x.SEGW
CDS views 
}}}