CacheProcessF3460ForecastRecords

Cache, Process F3460 Forecast Records

Major Business Rule

Object Name: B3401330

Parent DLL: CMFG

Location: Client/Server

Language: C

1.Functional Description

1.1Purpose
This function will perform Get, Add, Update, Delete, Delete All, Get Next, Add/Update, and Terminate 
functions on the Detail Forecast Cache used in the Forecast Revisions application (P3460).


The calling application is responsible for loading all appropriate key values to the data structure 

and identifying the number of keys to use in retrieval/update processes.


1.2 Setup Notes and Prerequisites
• Cache Action Codes
• '1' Get - retrieve the cache element.
• '2' Add - add a cache element.
• '3' Update - update a cache element.
• '4' Delete - delete a cache element.
• '5' Delete All - delete all cache elements. 
• '6' Get Next - retrieve the next cache element
• '7' Add/Update - will add if element does not exist, will change if it does exist.
• '8' Terminate - terminate cache

• Number of Keys 
• If the number of keys is passed as a parameter, the business function uses this value to setup 
key values for a Get, Update, Delete, Get Next, and Add/Update.

• A zero may be passed to retrieve, update, or delete the first record.

• When action code GET is used, the function saves the cache cursor pointer if the fetch is successful 
and SequentialFetch = '1'.  This allows the calling application to use GET NEXT to fetch elements 

from the cache sequentially.  If GET NEXT is used until the end of the keyed cache dataset is found, the 

function automatically closes the open cursor.

1.3Special Logic

This function creates a unique cache for each .

2.Technical Specifications

Cache Layout:Cache includes all of the following fields; key fields are noted.

Data Item Data Structure DescriptionKey Field

ITMShort Item NumberY

MCUBranchY

TYPFForecast TypeY

DRQJDateY

AN8Address NumberY

LITMSecond Item Number

AITMThird Item Number

FQTForecast Quantity

FAMForecast Quantity

DCTOOrder Type

BPFCBypass Forcing



I.Perform setup functions 

A.Initialize cache to get handle.  Cache name = input Job Number
B.If not successful, set error "032E", set Cache Error Code = '3', and return failure.

C.Validate input parameters Number Of Keys and Action Code.

D.If not valid, set error "032E", set Cache Error Code = '2', and return failure.

E.Set Cache Error Code = '0'

F.Set return code to success.


II.Processing Based on Mode.


A.If Cache Action Code is '1' - GET:
1.Open cursor.
2.Retrieve the first element on the cache matching the key values passed as input.  If the 

input Number of Keys is zero, fetch the first element in the cache.

3.Load the values from the retrieved element into the data structure to be passed back to 

the calling program.

4.If SequentialFetch = '1', return cursor pointer to calling application.  Otherwise, close 

the cursor.

5.If get fails set Cache Error Code = '6'.


B.If Cache Action Code is '2' - ADD:
1.Insert a new cache element with the values from data structure.
2.If add fails set error "032E", set Cache Error Code = '4', and return failure.


C.If Cache Action Code is '3' - UPDATE:
1.Update existing cache element with values from data structure.
2.If update fails set error "032E", set Cache Error Code = '4', and return failure.


D.If Cache Action Code is '4' - DELETE:
1.If the Number of Keys is not 0, delete all elements in the cache matching the key values 
passed as input.

2.If the number of keys is 0, delete the first cache element.

3.If delete fails, set Cache Error Code = '5'.


E.If Cache Action Code is '5' - DELETE ALL:

1.Delete all elements in the cache.
2.If delete fails, set Cache Error Code = '5'.


F.If Cache Action Code is '6' - GET NEXT:
1.Using the input cursor pointer from the previous GET action, retrieve the next element in 
the cache matching the key values passed as input.  If the Number of Keys is zero then fetch 

the next record without using any key.

2.Load the values from the retrieved element into the data structure to be passed back to 

the calling program.

3.If there are no more elements, close the cursor and set Cache Error Code = '1'.


G.If Cache Action Code is '7' - ADD/UPDATE:

1.Delete Record , if one exists,  that matches the full key from Input.
2.Insert a new cache element with values from data structure.

3.If add fails set error "032E", set Cache Error Code = '4', and return failure.


H.If Cache Action Code is '8' - END
1.If the input CacheCursorPtr is not zero, retrieve the pointer and close the cursor.
Perform cleanup functions (Terminate cache).


Data Structure

D3401330 - Cache, Process F3460 Forecast Records


Data Item Data Structure DescriptionI/ORequiredNotes

ITM            Short Item Number                  I/OY      key value

MCU             Branch                        I/OY      key value

TYPF            Forecast Type                  I/O      key value

DRQJ            Requested Date                  I/OY      key value

AN8            Customer Number                  I/OY      key value

LITM            Second Item Number            I/OY

AITM            Third Item Number                  I/OY

FQT            Forecast Quantity                  I/OY

FAM             Forecast Amount                  I/OY

DCTO            Order Type                        I/OY

BPFC            Bypass Forcing                  I/OY

EV01            Cache Action Code                  IY      '1' = Get cache element 

                                                                        '2' = Add element  

                                                                        '3' = Update element  

                                                                        '4' = Delete cache elements  

                                                                        '5' = Delete All cache 

elements 

                                                                        '6' = Get Next cache element 

                                                                        '7'  = Add/Update cache 

element 

                                                                        '8' = End cache (terminate 

cache) 

EV01            Cache Error Code                  ON      '0' = Success Process 

                                                                        '1' = Reached End of 

Cache(mode 6) 

                                                                        '2' = Invalid Input Parameter 


                                                                        '3' = Failed to Create Cache 

                                                                        '4' = Failed to Add/Update 

Cache 

                                                                        '5' = Failed to Delete Cache 

                                                                        '6' = Fetch Failed(mode 1 or 

9)

INT01            Number of Keys                  IY      Number of Keys to be used in 

the 

                                                                        cache process.

SUPPS            Suppress Error Message            IN      '0'= allow runtime error 

message 

                                                                             handling. 

                                                                        '1' = Suppress runtime error 

message 

                                                                              handling.

DTAI            Error Message Id                  ON      " " = Success 

                                                                        "032E" = Error Processing 

Cache

GENLNG      Cache Cursor Ptr                  I/ON

EV02            Sequential Fetch                  IN      If action is GET and this 

parm is 

                                                                        '1', function will pass back 

cursor 

                                                                        pointer for GET NEXT 

operation.


^

Parameter NameData ItemData TypeReq/OptI/O/Both
szJobNumberJOBcharNONENONE

Job Number

mnShortItemNumberITMMATH_NUMERICNONENONE

An inventory item number. The system provides three separate item numbers plus an extensive cross-reference capability to other item 
numbers (see data item XRT) to accommodate substitute item numbers, replacements, bar codes, customer numbers, supplier numbers, and 
so forth. The item numbers are as follows:   o Item Number (short) - An eight-digit, computer-assigned item number     o 2nd Item Number - The 
25-digit, free-form, user defined alphanumeric item number     o 3rd Item Number - Another 25-digit, free-form, user defined alphanumeric item 
number

szBranchMCUcharNONENONE

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

szForecastTypeTYPFcharNONENONE

A user defined code (34/DF) that indicates one of the following:     o The forecasting method used to calculate the numbers displayed about 
the item     o The actual historical information about the item 

jdRequestedDateDRQJJDEDATENONENONE

The date that an item is scheduled to arrive or that an action is scheduled for completion.

mnCustomerNumberAN8MATH_NUMERICNONENONE

A number that identifies an entry in the Address Book system, such as employee, applicant, participant, customer, supplier, tenant, or 
location.

szSecondItemNumberLITMcharNONENONE

A number that identifies the item. The system provides three separate item numbers plus an extensive cross-reference capability to 
alternative item numbers. The three types of item numbers are: Item Number (short) An 8-digit, computer-assigned item number. 2nd Item Number A 
25-digit, user defined, alphanumeric item number. 3rd Item Number  Another 25-digit, user defined, alphanumeric item number. In addition to 
these three basic item numbers, the system provides an extensive cross-reference search capability. You can define numerous 
cross-references to alternative part numbers. For example, you can define substitute item numbers, replacements, bar codes, customer numbers, or 
supplier numbers.

szThirdItemNumberAITMcharNONENONE

The system provides three separate item numbers plus an extensive cross-reference capability to alternate item numbers. These item 
numbers are as follows: 1.  Item Number (short) - An 8-digit, computer-assigned item number. 2.  2nd Item Number - The 25-digit, free-form, user 
defined alphanumeric item number. 3.  3rd Item Number - Another 25-digit, free-form, user defined alphanumeric item number.  In addition to 
these three basic item numbers, an extensive cross-reference search capability has been provided (see XRT). Numerous cross references to 
alternate part numbers can be user defined, such as substitute item numbers, replacements, bar codes, customer numbers, or supplier 
numbers.

mnForecastQuantityFQTMATH_NUMERICNONENONE

The quantity of units forecasted for production during a planning period.

mnForecastAmountFAMMATH_NUMERICNONENONE

The current amount of the forecasted units for a planning period.

szOrderTypeDCTOcharNONENONE

A user defined code (00/DT) that identifies the type of document. This code also indicates the origin of the transaction. J.D. Edwards has 
reserved document type codes for vouchers, invoices, receipts, and time sheets, which create automatic offset entries during the post 
program. (These entries are not self-balancing when you originally enter them.) The following document types are defined by J.D. Edwards and 
should not be changed: P Accounts Payable documents   R Accounts Receivable documents   T Payroll documents   I Inventory documents  
O Purchase Order Processing documents   J General Accounting/Joint Interest Billing documents   S Sales Order Processing documents

cBypassForcingBPFCcharNONENONE

A code that indicates whether to bypass the Forecast Forcing program (R34610). A Y indicates that the quantity and amount of a forecast 
should not be changed by an adjustment made to a forecast higher in the summary hierarchy. This flag is effective only when forecast forcing is 
done down the summary hierarchy.

cCacheActionCodeEV01charNONENONE

An option that specifies the type of processing for an event.

cCacheErrorCodeEV01charNONENONE

An option that specifies the type of processing for an event.

nNumberOfKeysINT01integerNONENONE

Number of Days in Future to Query for Responses Due. 

cSuppressErrorMessageSUPPScharNONENONE

A flag indicating whether or not runtime error messaging will occur when an error message is issued from a business function.        0 = allow 
runtime error message handling.        1 = suppress runtime error message handling.

szErrorMessageIDDTAIcharNONENONE

A code that identifies and defines a unit of information. It is an alphanumeric code up to 8 characters long that does not allow blanks or 
special characters such as %, &, or +. You create new data items using system codes 55-59. You cannot change the alias.

idCacheCursorPtrGENLNGIDNONENONE

General purpose ID variable.

cSequentialFetchEV02charNONENONE

An option that specifies the type of processing for an event.

Related Functions

None

Related Tables

None