55054596-Master-Business-Funtions

.docx
School
Escuela Politécnica del Ejercito**We aren't endorsed by this school
Course
SEGURIDAD JDE1
Subject
Information Systems
Date
Jan 9, 2025
Pages
10
Uploaded by BailiffFreedomRaven44
Master Business Function in EnterpriseOneApplies to JD Edwards EnterpriseOne Tools - Version: SP1 to 8.98 - Release: SP1 to 8.98Information in this document applies to any platform.This document is to explain general topics on Master Business Function (MBF) in EnterpriseOne,What is a Master Business Function?Why it is important in EnterpriseOne (in terms of it's feature)?What are components of Transaction MBFs?How transaction MBFs are built to run?How it calls internal BSFN for Edit Line in complex routine?How to debug issue on Master Business Function?ConsiderationsWhat is a Master Business Function?Master Business Function (MBF)is a Business Function written to process a record into the JDE system, which is made up of many sub-routines. JD Edwards provides MBFs to allow calling programs to process certain predefined transactions. An MBF encapsulates the required logic, enforces data integrity, and insulates the calling programs from the database structures.In EnterpriseOne, there are two different type of Master Business Functions:Transaction File Master Business FunctionoXT4111Z1 - Inventory TransactionsoXT4113Z1 - Inventory TransferXT4114Z1 - Inventory Issue/AdjustmentXT4116Z1- Item ReclassificationsoB4200310/B4200311/B4200312 - Sales Order Entry Master Business FunctionN4200790 - Shipment ConfirmationoXT4311Z1/XT4311Z2 - Purchase Order EntryXT4312Z1/XT4314Z2 - Purchase Order ReceiptsXT4314ZN/XT4314Z2 - Voucher MatchoX4801 - X4801 Work Order Entry Master Business FunctionoB03B0011 - Invoice Entry Master Business FunctionB03B0138/B03B0149 - F03B13 Maintain Receipt Header/F03B14 Maintain Receipt DetailoB0400047 - Voucher Entry Master Business FunctionB0400016 - A/P Payments Master Business FunctionoB0900049 - Journal Entry
Background image
oN3002040 - F3002 Bill of Material Master BsfnN3001780 - F3003 Master Business FunctionB3101260 - F3111 Parts List Master Business FunctionB3101250 - F3112 Work Order Routings Master Business FunctionB3101040 - F31122 WO Hours & Quantities Master Business FunctionB3401200 - F3460, Edit Line And Update Master Business FunctionB4501000 - Live Promotions Processing Master Business FunctionN3700070 - F3701 Test Definitions Master Business FunctionN3700100 - F3702 Specifications Master Business FunctionB3100770 - Work Order Completions MBFB3102080 - Co_By Completions MBFB3401360 - Process Messages MBFN3401430 - F3460 Forecast MBFN4200860 - Backorder Release MBFN4900710 - F4215 UnScheduled Delivery MBFN4900730 - Disposition Load MBFN4900780 - Load Confirm By Compartment MBFN4900140 - Create Load MBFMaster File Master Business FunctionoN0100041 - Address Book MBFoN0100042 - Customer Master -MBFoN0100043 - Supplier Master-MBFoN4101060 - F4101 Process Master DataoN4101070 - Update Item Process DataoN000700 - Shop Floor Calender - Master Business FunctionoB0100052 - Address Book - PO Template for MBFoB0500575 - Employee MBFoB0100087 - Who's Who MBFoB1200260 - Cache Process Asset Master MBFoB1200280 - Cache Process Equipment Tag MBFoB4600660 - Warehouse Reservations MBFoN3700150 - F3711 Test Results MBF               (The above is a non-exhaustive list of Master Business Functions.)Note:Transactional File Master Business FunctionoProvide a common set of functions (BeginDoc, EditLine, EditDoc, EndDoc, ClearCache)oThis common set of functions contain all of the necessary defaulting and editing for a transaction file.oRecords are dependent on each otheroLogic is broken up by event flow of an application
Background image
oThe common set of functions (BeginDoc, EditLine, etc) are called in different events in an application.oUses cache APIs to hold records being processedoSupport add, change, and delete logicMaster File Master Business FunctionoEach record is independentoAll logic is processed with one single calloGenerally, you can make one call to an MBF to edit, add, update or delete a master file record.oOne Single data structureoThe fields required to make the request and provide all the necessary values are in one data structure. The data fields should correspond directly with columns in the associated master file.oNo cache is needed.oBecause each master file record is independent of the others, caching is unnecessary.oSupport add, change, delete and inquiryThese business functions can also be called in Interoperability or EDI Batch Applications.XT4111Z1 is uniqueoIt follows Edit Line, Edit Doc, End Doc and Clear Cache routineoBut this MBF is not called directly from application rather same MBF defined above is calling this routineWhat is the purpose of using Master Business Function?To create reusable, application specific codeTo reduce duplicated code To ensure that hookup is consistentTo enforce data integrityTo support interoperability modelsTo allow processing to be distributed through OCMTo design event-driven architectureNote:MBFs are similar to the functional servers in WorldSoftware.By setting up and maintaining the structure of an MBF, these “hook ups” that call the functions are in a consistent order.Usually, in the EndDoc routine, interoperability sub-routine can be called. Example: B4200310 - F4211FSEndDoc is calling B4201540 - ProcessInteropOutboundRecs (Process Interop Outbound Records).
Background image
If there is any equivalent Batch Application(either Inbound Interoperability or EDI), MBF can be called based on event flow in the Batch Application/UBE.(Below topics will be focused on Transactional File Master Business Function)What are components of Transaction MBFs?A Transaction MBF is made up of below components:Begin DocEdit LineEdit DocEnd DocClear CacheHook-upWhat does it do?RemarksBeginDocAt the end of header processing or before detail data are processed.OK button clicked when header and detail is separated.Set focus event in header/detail or headerless/detail form.Initialize Cache/work file.Validate if the control value is populated.Initialize/default values.Create Cache/work file for Header.Usually used when transaction contains header and detail information. Example: Header Information from F4201/F4301 and detail information from F4211/F4311. BeginDoc used for header information that contains customer/supplier information. This component is optional when target transaction only have a single row of data (header only for example).EditLineIn exiting from row (Row Is Exited/Changed - Asynch) or OK button clicked with or without WHILE loopInitialize Cache/Workfile if BeginDoc was not called.Validate detail informationInitialize/default values In distribution module this function validate item/item-related information.Most of validation will take place through this
Background image
for detail transaction.Create cache/workfile for Detail.routine.EditDocOK button clickValidate before commit. If header and detail information need to have tight integrity then it may compare detail cache to header cacheThis function is optional. If it hits error (or validate failed), form may be closed neither issuing error nor committing cache to transaction filesEndDocPost OK button clicked - AsynchCommit cache/work file to transaction table(s)Mostly this function gets called with Transaction Processing ON asynchronously.If it does not hit error (successfully retrieved/committed cache) then ClearCache will be called.ClearCacheInside End Doc routine or Close/Cancel button clickedClear cache/workfile for header and detailThis is to clear any cache created through Begin Doc and Edit Line process.User abandon transaction(by clicking Cancel Button) then calling this is important to free memory.Some MBF is calling this routine in End Doc.Note:"Initialize" is to flush/allocate memory and set proper cache name through JDE_InitCache()Usually the cache name is made up of object ID (e.g., B4200310) and concatenate Job Number(e.g., 1002) to make it unique. For this example,  cache name will be B42003101002This is important when two or more MBF components communicate with others components (refer below How components communicate in a single MBF
Background image
Each components can be called as below in batch application (actual implementation can vary as it can be handled at different section when it needs strict validation to stop transaction from being committed when encountering error data), oInitialize Section: Begin DocoDo Section: Edit LineoEnd Section: End DocHow transaction MBFs are built to run?Below is an example of Sales Order creation through P4210 - Sales Order Entry,B4200310 - F4211FSBeginDoc (F4211 Begin Document)B4200310 - F4211FSEditLinePreProcess (F4211 Pre Process Value)B4200310 - F4211FSEditLine (F4211  Edit Line)B4200311 - F4211SOEInternalFunctions (F4211 Sales Order Entry Internal Functions)B4200312 - F4211EditDoc (F4211 Edit Doc)B4200310 - F4211EndDoc (F4211 End Document)B4200310 - F4211ClearWorkFile (F4211 Delete Work File)are to be build into B4200310.c, B4200311.c and B4200312.c which belongs to Parent DLL CSALES Note:Unlike other BSFN, before it calls F4211FSEditLine, it calls additional business function F4211FSEditLinePreProcess (F4211 Pre Process Value) to assign valid value in calling F4211FSEditLineF4211FSEditLine (B4200310) is calling internal business function I4200310_F4211FSEditLine(). The actual routine does not exist in B4200310 but exist in B4200311 instead. Both B4200310 and B4200311 belongs to library CSALES.So it is important to check internal BSFN B4200311 when it issues error in validating detail information through F4211FSEditLineSince B4200311 is an internal Business Function, jdedebug.log will not contain statement like "Calling Business Function F4211SOEInternalFunctions from Application [P4210], Version [ZJDE0001]How it calls internal BSFN for Edit Line in complex routine?Below is example of B4200310 in Sales Order Entry,
Background image
JDEBFRTN(ID) JDEBFWINAPI F4211FSEditLine (LPBHVRCOM lpBhvrCom, LPVOID lpVoid, LPDSD4200310F lpDS){   return I4200310_F4211FSEditLine(lpBhvrCom, lpVoid, lpDS);}As we can see above B4200310 has definition on F4211FSEditLine which is calling internal BSFN I4200310_F4211FSEditLine () but you may not be able to find the detail routine of I4200310_F4211FSEditLine in B4200310.Below MBFs are configured same manner so it is important to check internal business function for below listed transactions,XT4311Z1/XT4311Z2 - Purchase Order EntryXT4312Z1/XT4314Z2 - Purchase Order ReceiptsXT4314ZN/XT4314Z2 - Voucher MatchHow internal components/routine communicate with another routine in a Master BSFN?For example in handling Inventory Issue through P4112 which utilizes MBF XT4112Z1,Get Local Computer ID   VA rpt_WorkStationId_JOBN <> BF szMachineKeyF4114 Begin Document    VA rpt_WorkStationId_JOBN -> BF szComputerID   " M30" -> BF szBranchPlant   -> BF mnBatchNumber   SL DateToday -> BF jdBatchDate   "II" -> BF szDocumentType   SL DateToday -> BF jdGLDateF4114 Edit Line   VA rpt_WorkStationId_JOBN -> BF szComputerID   SL DateToday -> BF jdGLDate   "Inventory Issue" -> BF szGLExplanation   "1" -> BF cUpdateQuantityOnHand   "1" X BF cAllowQtyOverAvailable   "F" -> BF cFromTo   "1" -> BF cDefaultFromPrimaryLocation   SL DateToday -> BF jdTransactionDate   "II" -> BF szDocumentType   SL DateToday -> BF jdBatchDate   VA rpt_BatchNumber_ICU <- BF mnBatchNumber (Ref #1)   " M30" -> BF szBranchPlant   "210" -> BF szItemNumber   "1.0000" -> BF mnTransactionQty   "1.00" -> BF mnTransactionProcessType   VA rpt_DocVoucherInvoiceE_DOC <- BF mnDocumentNumber (Ref #2)
Background image
   VA rpt_JobnumberA_F0911 <- BF mnF0911JobNumber (Ref #3)   "00200" -> BF szKeyCompany   VA rpt_JobnumberA_Inventory <- BF mnInvJobNumber (Ref #4)   "1" -> BF cProcessJE   "" -> BF mnSecondaryQtyF4114 End Document   "EP4112" -> BF szProgramID   VA rpt_DocVoucherInvoiceE_DOC -> BF mnDocumentNumber (Ref #2)   VA rpt_WorkStationId_JOBN -> BF szComputerID   "1" -> BF cWriteCardex   "II" -> BF szDocumentType   "1.00" -> BF mnTransactionProcessType   VA rpt_JobnumberA_F0911 -> BF mnF0911Jobnumber (Ref #3)  VA rpt_BatchNumber_ICU -> BF mnBatchNumber (Ref #1)   "1" -> BF cProcessCloseBatch   VA rpt_JobnumberA_Inventory -> BF mnInvJobNumber (Ref #4)Note:It is important to understand how cache is created and it gets utilized through End Doc routineVerify what are return values through Edit Line routineAssign Job number for individual internal routine as cache were created based on this job numberFor this example, oCreate inventory transaction through XT4111Z1 with job number named ' VA rpt_JobnumberA_Inventory'oCreate Journal transaction through B0900049 with job number named 'VA rpt_JobnumberA_F0911'Through Edit Line routine, cache is created based on specified job number This routine is important when you need to interface with 3rd party software(e.g., IBM WebSphere Adapter) or business serviceJob Number has to be uniqueper unit of transaction otherwise, cache itself won't be handled properlyHow to debug issue on Master Business Function?Analyze jasdebug.log (at presentation layer) and jdedebug.log (in logic server) which contains runtime flow and business flow respectivelyjasdebug.log: describes how it gets calledjdedebug.log (CallObject kernel log): how MBF validates data, create cache and commit it
Background image
ConsiderationsIn thin client configuration, interactive application is more suitable for smaller size of transactions otherwise you may hit 'ASYNCHRONOUS BUSINESS FUNCTION Error', 'Commit Failed', 'Transaction Failed' or Web Client Exception in committing cache to DBIn general, interactive application may make use of Cache (based on data structure of work file) whereas batch application will write work file. The main consideration is not to utilize too much cache though it may return better performance in small transactions.Since most of JDE applications may have equivalent batch processes, you can utilize these batch applications when trying to process large number of records.MBFInteractive ApplicationBatch ApplicationXT4114Z1P4112 - Inventory IssueR47121 - EDI Product Activity Data Edit/CreateXT4113Z1P4113 - Inventory TransfersR47121 - EDI Product Activity Data Edit/CreateXT4114Z1P4114 - Inventory AdjustmentsR47121 - EDI Product Activity Data Edit/CreateXT4116Z1P4116 - Item ReclassificationR47121 - EDI Product Activity Data Edit/CreateB4200310/B4200311/B4200312P4210/P42101 - Sales Order EntryR47011 - EDI Inbound Purchase Order Edit/CreateN4200790P4205 - Ship ConfirmationR47500 - Inbound Transaction ProcessorR42500 - Ship Confirm Batch ApplicationXT4311Z1/XT4311Z2P4310 - Purchase Order EntryR4311Z1I - PO Unedited Transaction Inbound ProcessorXT4312Z1/XT4314Z2P4312 - PO ReceiptR47071 - EDI Receiving Advice Edit/Create - PurchasingXT4314ZN/XT4314Z2P4314 - Voucher MatchR470412 - EDI Inbound Invoice/Match to P.O. Edit/CreateX4801P48013 - Work OrderR4701ZI - SCP Inbound Work OrdersB03B0011P03B11 - Invoice EntryB03B0138/B03B0149P03B102 - Receipt EntryB0400047P0411 - VoucherR470412 - EDI Inbound Invoice/Match to P.O.
Background image
Edit/CreateR04110Z* - Voucher Batch ProcessorB0400016P0413M - A/P Manual PaymentB0900049P0911 - Journal EntryR0911Z1 - Store and Forward Journal Entry UploadN3002040P3002 - Bill of MaterialR3002Z1I - Process Inbound Bill of MasterialN3001780P3003 - RoutingR3003Z1I - Process Inbound ProcessingB3101260P31113 - Work Order Inventory IssuesR31113Z1I - Inbound Inventory Issue TransactionB3401360P3411 - MRP/MPS Detail Message RevisionsR3411 - MRP/MPS Detail Message ProcessingNote:Only major transaction information has been described here.For detail, refer EnterpriseOne 8.9 Data Interface for EDI PeopleBook and EntepriseOne 8.0 Interoperability PeopleBook.
Background image