1.Functional Description
1.1Purpose
This function will perform Get, Add, Update, Delete, Delete All, Get Next, Add/Update, and Terminate 
functions on the MRP Item Quantity Cache used in the MRP/MPS planning programs (P3482 and P3483).
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 Code
 
 '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
 '9' Close Cursor - close input cache cursor and free the pointer
 'D' Debug Mode - Dumps the contents of the entire cache into a text file
 Number of Keys 
 
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.
1.3Special Logic
This function creates a unique cache for each MRP/MPS planning process.  The function appends the 
input Job Number string to the two character ID 'IQ' to build the cache name used for the calling 
application.
2.Technical Specifications
Cache Layout:Cache includes all of the following fields; key fields are noted.
Data Item Data Structure DescriptionKey Field
MCU    Branch                        Y
TP      Quantity Type                 Y
DRQJ     Date                             Y
NQ01      Quantity
I.Perform setup functions 
B.If not successful, set error "032E", set Cache Error Code = '3', and return failure.
C.Set Cache Error Code = '0'
D.Set return code to success.
II.Processing Based on Mode.
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 Sequential Fetch is '1' then Return the Cursor Pointer.
5.If get fails set Cache Error Code = '6'.
2.If add fails set error "032E", set Cache Error Code = '4', and return failure.
2.If update fails set error "032E", set Cache Error Code = '4', and return failure.
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:
2.If delete fails, set Cache Error Code = '5'.
cursor should have been set through a previous "Get" action, i.e. Cache Action Code '1'.  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, free pointer and set Cache Error Code = 
'1'.
G.If Cache Action Code is '7' - ADD/UPDATE:
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.
2.Close Cursor
3.Free Pointer
4.Set Cache Cursor Pointer = 0
D3401290 - Cache, Process MRP Item Quantities
Data Item Data Structure DescriptionI/ORequiredNotes
JOB            Job Number                        IY      Job Number as string for 
cache name
MCU            Branch                        I/OY      Key value
TP            Quantity Type                  I/OY      key value
DRQJ            Date                              I/OY       key value
NQ01            Quantity                        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) 
                                                                        '9' = Close Cursor and Free 
Ptr 
                                                                        'D' = Dump cache into text 
file
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.
GENLNG         Cache Cursor Ptr                  I/ONUsed when Sequential Fetch is 
'1'
 
EV02            Sequential Fetch                  I/ON      If Action is GET, and this 
parm is 
                                                                        '1' it will return the cursor 
pointer 
                                                                        in Cache Cursor Ptr
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
^
| Parameter Name | Data Item | Data Type | Req/Opt | I/O/Both | 
|---|---|---|---|---|
| szJobNumber | JOB | char | NONE | NONE | 
Job Number  | ||||
| szBranch | MCU | char | NONE | NONE | 
An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
  | ||||
| szQuantityType | TP | char | NONE | NONE | 
An identification code of a Report Writer Type.  | ||||
| jdDate | DRQJ | JDEDATE | NONE | NONE | 
The date that an item is scheduled to arrive or that an action is scheduled for completion.  | ||||
| mnQuantity | NQ01 | MATH_NUMERIC | NONE | NONE | 
The net transaction quantity from all transactions for an Item for Period 01.  | ||||
| cCacheActionCode | EV01 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| cCacheErrorCode | EV02 | char | NONE | NONE | 
An option that specifies the type of processing for an event.  | ||||
| nNumberOfKeys | INT01 | integer | NONE | NONE | 
Number of Days in Future to Query for Responses Due.  | ||||
| cSuppressErrorMessage | SUPPS | char | NONE | NONE | 
A flag indicating whether or not runtime error messaging will occur when an error message is issued from a business function.
       0 = allow 
  | ||||
| szErrorMessageID | DTAI | char | NONE | NONE | 
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 
  | ||||
| idCacheCursorPtr | GENLNG | ID | NONE | NONE | 
General purpose ID variable.  | ||||
| cSequentialFetch | EV03 | char | NONE | NONE | 
A radio button that specifies the level at which trace/track result is to be displayed.  Select the Detail to display all transactions except IB, IX, 
  | ||||
| None | 
| None |