Abstract: This document explains
how User Reserved Columns can be added into F4211 Sales Order Detail File
through P4210 Sales Order Entry.
Caution: This document may
contain information, software, products or services which are not supported by
Oracle Support Services and are being provided as is without warranty. Please
refer to the following site for My Oracle Support Terms of Use:
https://support.oracle.com/CSP/ui/TermsOfUse.html
Introduction
User Interface
Action Plan
Example of
Implementation
Before implementing,
try to understand the logic on how the system handles Sales Order Data. In
adding/changing Sales Order, header and detail data can be either being held
through Cache or through Work File.
Currently
there are 3 available Work File,
Note:
There is F42UI02 but it is just data structure not a logical data repository
Currently
a Table F42UI12 contains User Reserved Columns. So we are going to make use of
existing Function/Data Structure.
Before
implementing, be sure to understand the detailed functionality of the master business
function (BSFN) in Sales Order Entry.
In the EnterpriseOne
Distribution Module, major application handles data through Cache (or Work File
for equivalent Batch Application).
P4210
handles Sales Order Header/Detail Data as follows :-
For this
example, we may make use of existing BSFN (without modifying any Data Structure
and BSFN) but the same implementation can be done by altering F4211FSEditLine
(with Data Structure of D4200310F) by adding the User Reserved Columns in the
Data Structure and F42UI11. However this is not recommended because a as change in the data structure may cause
Memory Related Issues across systems.
Detail
Information is handled by BSFN B4200311 (same configuration can be found,
XT4311Z2 for Purchase Order Entry, XT4312Z2 for Purchase Order Receipt and
XT4314Z2 for Voucher Match Application)
F4211FSEditLine
does not have User Reserved Columns as members of data structure and we can
observe that F42UI12 (Extension of F42UI11) contains User Reserved Columns. So
we need to make use of existing cache or workfile to fulfill this implementation.
è
Table F42UI12 contains User Reserved Columns
è
Data Structure D4200310J contains these columns
è
So verify which business function uses the data
structure
àNote that User Date (URDT)
and User Reference (URRF) is a Data Dictionary item not Business View Column
àSince all the data are being
handled through Master BSFN, using Data Dictionary Item may be a better option
to implement
è
Above routine creates another set of cache
(F42UI12)
è
Source of Data will be handled in calling
F4211FSEditLine
è
Currently GC Source of Data = 7 is not utilized
è
Enable block of codes highlighted above
*** Break
In Code ***
if((lpDS->cCMRecdWrittenToWF !=_J('1'))
&&
(lpDS->cCMRecdWrittenToWF
!=_J('3')) &&
(lpDS->cCMRecdWrittenToWF
!=_J('5')) &&
((lpDS->cWKSourceOfData != _J('7'))
||
((lpDS->cWKSourceOfData
== _J('7')) &&
(MathZeroTest(&lpDS->mnSODRelatedJobNumber))))) /* Based on GC Value assigne it comes to this routine
*/
{
if (lpDS->cCMWriteToWFFlag == _J('2')) /* cCMWrieteToWFFlag = 2
is to be implemented only when BSFN gets called in Batch Application */
{
if((lpds4200310B->cCSSRecdWrittenToWF
== _J('1')) &&
((lpdsF42UI12->zdffg1 != _J(' '))
|| (lpdsF42UI12->zdffg1 != _J('\0'))
|| (lpdsF42UI12->zdffg1 != _J('0'))))
{
lpdsF42UI12->zdffg1 = _J('1');
}
}
idReturnAPIValue =
F42UI12_Insert(lpds4200310B->lpdsF42UI12DAO,lpdsF42UI12,
szErrorMessageID); /* Routine to write cache
F42UI12 */
if(idReturnAPIValue != ER_SUCCESS)
{
memset((void
*)&dsDE0022, (int)_J('\0'), sizeof(dsDE0022));
jdeStrcpy((JCHAR
*)dsDE0022.szDescription, (const JCHAR *)_J("F42UI12"));
jdeSetGBRErrorSubText(lpBhvrCom,
lpVoid, (ID)0,
szErrorMessageID, &dsDE0022);
}
}
else
{
if (lpds4200310B->cByPassOrPurge !=
_J('1'))
{
idReturnAPIValue =
F42UI12Index2_UpdateKeyed(lpds4200310B->lpdsF42UI12DAO,3,
lpDS->szCMComputerID,
lpDS->mnCMJobNo,lpDS->mnCMLineNo,lpdsF42UI12,szErrorMessageID);
if
(idReturnAPIValue != ER_SUCCESS)
{
memset((void
*)&dsDE0022, (int)_J('\0'), sizeof(dsDE0022));
jdeStrcpy((JCHAR
*)dsDE0022.szDescription, (const JCHAR *)_J("F42UI11"));
jdeSetGBRErrorSubText(lpBhvrCom,
lpVoid, (ID)0,
szErrorMessageID,
&dsDE0022);
}
}
else
{
/*---------------------------------------------------------------------
* The line is being bypassed, so delete
it from the work file now.
*----------------------------------------------------------------------*/
idReturnAPIValue =
F42UI12Index2_DeleteKeyed(lpds4200310B->lpdsF42UI12DAO,3,
lpDS->szCMComputerID,
lpDS->mnCMJobNo,lpDS->mnCMLineNo,szErrorMessageID);
if
(idReturnAPIValue != ER_SUCCESS)
{
memset((void
*)&dsDE0022, (int)_J('\0'), sizeof(dsDE0022));
jdeStrcpy((JCHAR
*)dsDE0022.szDescription, (const JCHAR *)_J("F42UI12"));
jdeSetGBRErrorSubText(lpBhvrCom,
lpVoid, (ID)0,
szErrorMessageID,
&dsDE0022);
}
}
}
*** Break In Code ***
àOr this can be implemented
with other method (Table I/O or calling BSFN)
E1: FDA:
Object Modification Recommendations: Interactive Applications (Doc ID
626586.1)
E1: FDA:
Object Modification Recommendations: Event Rules (Doc ID 626585.1)
E1: TDA:
Object Modification Recommendations: Business Views (Doc ID 626582.1)