How to Implement User Reserved Column in P48013

Title: How to Implement User Reserved Columns in P48013 – Manufacturing Work Order Processing

Abstract: This document explains how User Reserved Columns can be implemented into F4801 – Work Order Master File (or Work Order Header File) through P48013 – Manufacturing Work Order Processing

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.


Table of Contents

Introduction
User Interface

Action Plan

Example of Implementation

 


Introduction

Before you take any action make sure all the information is fully understood including the consequences of the change to be made. And the relationship between Work Order Header/Detail is understood properly.

 

For example, work order information can be stored as below,

: This document shall explain how to populate user reserved columns in F4801 but shall not cover how to populate it in detail tables listed above from this document.

 

 

Note: X4801 (Work Order Entry Master Business Function) is working very much different from other routine. One of reason is that the form W48013A is a Fix/Inspect form and Edit Line routine gets called only once in clicking OK button to validate input value. 

 

 

P48013 – Manufacturing Work Order Processing handles data as below,

 

 

 

Before Start

 

  1. Check business View in Form of W48013A
  2. Check Data Structure or Work File whether it contains User Reserved Columns from W4801, X4801 (in X4801.h and B4800210.h)
  3. Check whether B4800210 contains logic to handle User Reserved

 

 

 

Back to Top
 
 
 
 

User Interface

User may enter User Reserved Columns in the Form of W48013A then this information has to be delivered to WO Header Master Business Function X4801EditLine to create WO Header Cache.

This document is to explain how we can implement this.

Action Plan

 

Important:

θ    DSX4801INTERNAL      dsInternal;  - Pointer to Internal Data structure

θ    DSX4801CACHE         dsCache;

θ    DSX4801WORKCACHE     dsWorkCache; - Pointer to Work Cache datastructure

θ   lpdsF4801  - Pointer to input datatstructure F4801

: So this example show how to populate lpdsF4801 through Edit Line routine which is to be utilized through End Doc routine

 

Note for cache and pointers (LPDS)

n  Structure used in F4801EditLine

   DSX4801INTERNAL      dsInternal;

   DSX4801CACHE         dsCache;

   DSX4801WORKCACHE     dsWorkCache;

   F4801                dsF4801;

n  Structure used in F4801EndDocument

   DSX4801INTERNAL      dsInternal;

   DSX4801CACHE         dsCache;

   DSX4801WORKCACHE     dsWorkCache;

n  Structure used in IX4801_StorePointers: Store the Cache and Input structures pointers, and output structure pointers for use in the Called Module

LPDSDX4801E lpDS, lpDS         - Pointer to Output Structure

LPDSX4801INTERNAL lpdsInternal, - Pointer to internal Structure

LPDSX4801CACHE lpdsCache, - Pointer to Main Cache Structure

LPF4801 lpdsF4801 - - Pointer to input Structure

n  Structure used in IX4801_StoreEndDocPointers: Store the Cache and Input structures pointers,  and output structure pointers for use in the Called Module

LPDSDX4801C lpDS, - Pointer to Output Structure

LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal structure

LPDSX4801CACHE lpdsCache, - Pointer to Main Cache Structure

LPF4801 lpdsF4801) - Pointer to input structure lpdsF4801

n  Structure used in IX4801_StoreOutSourcePointers: Will determine which process module to call depending on the input process module flag

LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal Structure

LPF4801 lpdsF4801, - Pointer to Input Structure

LPF4801 lpdsOriginalF4801) - - Pointer to lpdsOriginalF4801

n  Structure used in IX4801_GetF4801Record: Retrieves the F4801 based on the Order Number

LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal data structure

LPF4801 lpdsF4801, - Pointer to Input Structure

LPDSX4801WORKCACHE lpdsWorkCache, - Pointer to Work Cache structure

n  Structure used in IX4801_AddF4801Record:  Adds the work cache record to the F4801

LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal data structure

LPF4801 lpdsF4801, - Pointer to Input data structure

LPDSX4801WORKCACHE lpdsWorkCache) - Pointer to Work Cache Data structure

n  Structure used in IX4801_UpdateF4801Record: updates the work cache record to the F4801

LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal data structure

LPF4801 lpdsF4801, - Pointer to F4801 Input structure  

LPDSX4801WORKCACHE lpdsWorkCache) - Pointer to Work Cache Structure

n  Structure used in IX4801_MFGEditing: Will call the MFG module - B4800210, to perform all Manufacturing, Repetitive and Sales editing.

o   LPDSDX4801E lpDS, - Pointer to Output datastructure

o   LPDSX4801INTERNAL lpdsInternal, - Pointer to Internal data structure

o   LPDSX4801WORKCACHE lpdsWorkCache) - Pointer to Work Cache structure

: Note Pointers defined here

 

 

Possible Implementation

  1. Work Order Revision form (W48013A) is written via Fix/Inspect  form and data is to be handled by the business view V4801C (Manufacturing Work Order Header). Currently User Reserved Columns are not a member of data structure (or business view columns)

 

Or just implement this using Data Dictionary Columns

 

  1. Verify that existing (Fix/Inspect) Form of W48013A – [Work Order Details] does not contain User Reserved Columns

θ Now User Reserved Columns are ready to use because we have added User Reserved Columns into the associated Business View V4801C

θ User Reserved Columns are added into W48013A form

  1. Map columns added above in calling Edit Line Routine

 

 

 

 

θ User Reserved columns are mapped so input value is ready to be used.

 

 

  1. Map input values

: Note that whatever value assigned through F4801EditLine is stored in the main cache but this cache has to be handled by internal routine

 

  1. Open B4800210 which is internal function to handle user input data

n  Go to Internal Function : IB4800210_LoadX4801InputToCache.  This function copy the fields currently in the F4801 to the Cache

 

 

 

 

 

 

 

static void IB4800210_LoadX4801InputToCache(LPDSB4800210INTERNAL lpdsInternal, 

                                                                                LPDSX4801CACHE lpdsCache,

                                                                                LPDSDX4801E lpdsInput) 

{

*** Break In Code ***

MathCopy(&lpdsCache ->mnUserReservedAmount, &lpdsInput->mnUserReservedAmount);

MathCopy(&lpdsCache ->mnUserReservedNumber, &lpdsInput->mnUserReservedNumber);

jdeStrncpy((JCHAR *)(lpdsCache->szUserReservedCode),

              (const JCHAR *)(lpdsInput->szUserReservedCode),

              DIM(lpdsCache ->szUserReservedCode));

jdeStrncpy((JCHAR *)(lpdsCache->szUserReservedReference),

              (const JCHAR *)(lpdsInput->szUserReservedReference),

              DIM(lpdsCache ->szUserReservedReference));

memcpy((void *)(&lpdsCache->jdUserReservedDate),

             (const void *)(&lpdsInput->jdUserReservedDate),

             sizeof(JDEDATE));

*** Break In Code ***

}

 

n  Go to IB4800210_LoadCacheToF4801: This function copy the fields saved in the Main Cache back to the Work Order Header table (F4801).

static void IB4800210_LoadCacheToF4801(LPF4801 lpdsF4801,

                                       LPDSX4801CACHE lpdsCache)

{

*** Break In Code ***

jdeStrncpy((JCHAR *)(lpdsF4801->waurcd),

              (const JCHAR *)(lpdsCache->szUserReservedCode),

              DIM(lpdsF4801->waurcd)-1);

MathCopy(&lpdsF4801 -> waurat, &lpdsCache->mnUserReservedAmount);

MathCopy(&lpdsF4801 -> waurab, &lpdsCache->mnUserReservedNumber);

jdeStrncpy((JCHAR *)(lpdsF4801-> waurrf),

              (const JCHAR *)(lpdsCache ->szUserReservedReference),

              DIM(lpdsF4801 -> waurrf));

memcpy((void *)(&lpdsF4801->waurdt),

             (const void *)(&lpdsCache->jdUserReservedDate),

             sizeof(JDEDATE));

*** Break In Code ***

}

  1. Compile B4800210
  2. Test it

 

 

 

 

 

 

 

 

 

    1. Data is inserted into F4801 – Work Order Header File

 

 

  1. Same Data can be shown in reviewing data because in calling Edit Line FC value is mapped for both Input and Output

 

 

 

 

 

Object Affected

n  Business View V4801C

n  Interactive Application P48013 [W48013A] in clicking OK button

n  Business Function: B4800210.c to store value handled in X4801 and store this in returning back to X4801

 

 

Back to Top

 

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) 

 

Back to Top