Description
Formula API User’s GuideRelease 11i October 2000 Part No. A87318-01 Oracle Process Manufacturing Oracle® Process Manufacturing Formula API User’s Guide, Release 11i Part No. A87318-01 Copyright © 2000, Oracle Corporation. All rights reserved. Primary Author: Richard D. Persen Shyamsunder Sitaraman, Bill Stearns Major Contributors: The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs is prohibited. Program Documentation is licensed for use solely to support the deployment of the Programs and not for any other purpose. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065. The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and Oracle Corporation disclaims liability for any damages caused by such use of the Programs. Oracle is a registered trademark, and Oracle Process Manufacturing is a trademark of Oracle Corporation. All other company or product names mentioned are used for identification purposes only and may be trademarks of their respective owners. Contents Send Us Your Comments .................................................................................................................... v Preface........................................................................................................................................................... vii 1 Formula API Introduction Introducing the Formula API ........................................................................................................... Formula API Features .................................................................................................................. Formula API Support Policy....................................................................................................... Oracle Applications Packages Supplied ........................................................................................ Formula API Bill of Materials .......................................................................................................... Wrapper Function and Stored Procedures ..................................................................................... Validating the User Name ................................................................................................................. 1-2 1-3 1-3 1-4 1-4 1-6 1-6 2 Formula API Business Objects Using Formula API Business Objects............................................................................................. Formula API Entity Diagram............................................................................................................ Formula API Business Object Interface Design ........................................................................... Creating a New Formula.................................................................................................................... Importing Formula Data Structures ................................................................................................ Understanding the General Input Structure............................................................................. Using Input Parameters for Each Formula API ....................................................................... 2-2 2-3 2-4 2-5 2-7 2-7 2-8 A Messages and Errors Handling Messages ............................................................................................................................ A-2 iii Interpreting Error Conditions .......................................................................................................... A-3 Understanding Error Messages ........................................................................................................ A-3 Index iv v .com If you would like a reply.oracle. where? Are the examples correct? Do you need more examples? What features did you like most about this manual? If you find any errors or have any other suggestions for improvement. and page number (if available). Your input is an important part of the information used for revision. please contact your local Oracle Support Services.Send Us Your Comments Oracle® Process Manufacturing Formula API User’s Guide Release 11i Part No. Did you find any errors? Is the information clearly presented? Do you need more information? If so. address. You can send comments to us in the following ways: FAX: 650-506-7200 Attn: Oracle Process Manufacturing Postal service: Oracle Corporation Oracle Process Manufacturing 500 Oracle Parkway Redwood City. section.S. please indicate the chapter. A87318-01 Oracle Corporation welcomes your comments and suggestions on the quality and usefulness of this publication. please give your name. If you have problems with the software.A. CA 94065 U. Electronic mail message to appsdoc@us. and telephone number below. vi . we suggest you attend one or more of the Oracle Process Manufacturing training classes available through Oracle World Wide Education. This user’s guide includes the information you need to work with the Oracle Process Manufacturing (OPM) application effectively. vii . If you have never used OPM. It also assumes that you are familiar with OPM Formula Management. This guide also assumes that you are familiar with the Oracle Applications graphical user interface. This preface explains how this user’s guide is organized and introduces other sources of information that can help you. read the Oracle Applications User’s Guide.Preface Welcome to the Oracle Process Manufacturing Formula API User’s Guide. To learn more about Oracle Applications graphical user interface. Intended Audience This guide assumes that you have working knowledge of your business area’s processes and tools. business object interface design. Discusses Formula API business objects. For example. including documentation. and validating the user name. but such differences do not affect content. wrapper function. context-sensitive section. Provides the relationships between Formula API table structure and its entities. you can navigate freely throughout all Oracle Applications documentation. Slight formatting differences could occur due to publication standards. Online Documentation Oracle Applications documentation is available on CD-ROM. the entity relationship diagram. and an understanding of error messages. The content of the documentation remains the same from format to format. Formula API bill of material. Once any section of the HTML documentation is open. training. page numbers are included on paper. Each window is programmed to start your web browser and open a specific. the interpretation of error conditions. User’s guides are available in HTML format and on paper. Other documentation is available on paper and sometimes in PDF format. creating a new formula and importing formula data structures Provides message handling. except for technical reference manuals. and support services to increase your knowledge and understanding.About This Guide This guide contains overviews as well as task and reference information. The HTML documentation is available from all Oracle Applications windows. Formula API Business Objects Appendix A Information Sources You can choose from many sources of information. viii . but are not included in HTML. It includes the following: Name Description Formula API Introduction Describes the Application Program Interfaces (APIs) that support external interfaces to the OPM Formula Management tables including: packages supplied. stored procedures. Technical reference manuals are available on paper only. Related Documents Oracle Process Manufacturing shares business and setup information with other Oracle products. You may find the following Oracle Applications user’s guides useful: Oracle Applications User’s Guide Oracle Application’s Flexfields Guide Oracle Workflow User Guide Oracle Applications System Administrator’s Guide Oracle General Ledger User’s Guide Oracle Payables User’s Guide Oracle Receivables User’s Guide Oracle Human Resources North American User’s Guide Oracle Purchasing User’s Guide Oracle Process Manufacturing Guides The following is a list of documentation in each product group for OPM: Financials Oracle Process Manufacturing Accounting Setup User’s Guide Oracle Process Manufacturing Cost Management User’s Guide Oracle Process Manufacturing Manufacturing Accounting Controller User’s Guide Oracle Process Manufacturing and Oracle Financials Integration User’s Guide Inventory Control Oracle Process Manufacturing Intrastat Reporting User’s Guide Oracle Process Manufacturing Inventory Management User’s Guide Oracle Process Manufacturing Physical Inventory User’s Guide Logistics Oracle Process Manufacturing Order Fulfillment User’s Guide Oracle Process Manufacturing Purchase Management User’s Guide Process Execution ix . or you can arrange for our trainers to teach at your facility. We organize these courses into functional learning paths. For example. . you may want to use your organization’s structure. You can attend courses offered by Oracle Education Services at any one of our many Education Centers. so you take only those courses appropriate to your area of responsibility. terminology. In addition.Oracle Process Manufacturing Process Operation Control User’s Guide Oracle Process Manufacturing Production Management User’s Guide Process Planning Oracle Process Manufacturing Capacity Planning User’s Guide Oracle Process Manufacturing Integration with Advanced Planning and Scheduling User’s Guide Oracle Process Manufacturing MPS/MRP and Forecasting User’s Guide Product Development Oracle Process Manufacturing Formula Management User’s Guide Oracle Process Manufacturing Laboratory Management User’s Guide Oracle Process Manufacturing Quality Management User’s Guide Regulatory Oracle Process Manufacturing Regulatory Management User’s Guide System Administration and Technical Reference Oracle Process Manufacturing Implementation Guide Oracle Process Manufacturing System Administration User’s Guide Oracle Process Manufacturing Technical Reference Manuals x Training Oracle offers a complete set of formal training courses to help you master Oracle Process Manufacturing and reach full productivity quickly. You have a choice of educational environments. Oracle Training professionals can tailor standard courses or develop custom courses to meet your needs. and data as examples in a customized training session delivered at your own facility. . Only menu options unique to the use of the specific window are discussed. Any actions which are subordinate to a step are assigned letters. Fields Reserved for Future Use Fields with no current processing implications are referenced by the statement "This field is not currently used" or "Reserved for future use. some completed transactions are stored in the Pending Transactions table)." Pending/Completed Transactions Discussions about processing transactions that use the words pending and completed refer to the status of a transaction. For example: To access the next window. because there are plans to link future functionality to these fields. Navigate to windows xi . Fields intended for informational purposes only are referenced by the statement "This field is for informational purposes only. click OK. Otherwise. These standard options are described in the Oracle Applications User’s Guide. Additional Menu Options Only nonstandard menu options are discussed.Conventions The following conventions are used in this guide: Bolded Text Buttons. fields. all procedures are suggestive only. References within the body of this guide appear in regular type. therefore. Standard menu bar options (such as Save) are not discussed. and selections are bolded in procedures only.. "Required if. Field References References to fields within procedures are in bold type." is the last sentence of the field description. menus. references to these features appear in regular type. Procedures Most topics contain a procedure with numbered steps. or only in specific situations. keys. When the field is required contingent on the entry in another field. You can customize your Oracle Application. Pending and completed do not refer to the database tables that are updated as a result of transactions (for example." Do not use these fields for your own reference data. Required Fields The word Required appears as the last word in the field description of all required fields. Use of the Word Character The word character means an alphanumeric character. As a result. and you want access to it. applications development. and personal digital assistants. Also note that fields may appear in a different order than they are discussed. minicomputers. allowing organizations to integrate different computers. contact your System Administrator. Oracle Applications automatically checks that your changes are valid. you could store invalid information. and xii . sales. any change you make using Oracle Applications can update many tables at once. and office automation. Oracle Products are available for mainframes. personal computers. project systems. If you modify the Oracle Applications data using anything other than Oracle Applications. About Oracle Oracle Corporation develops and markets an integrated line of software products for database management. Do Not Use Database Tools to Modify Oracle Applications Data Oracle Applications tables are interrelated. Depending on your system security profile. If you enter information into database tables using database tools.and between responsibilities in a way that works best for your particular setup. supply chain management. Characters that are numeric or alphabetic only are referenced specifically. you risk retrieving erroneous information and receiving unpredictable results throughout Oracle Applications. You also lose the ability to track who has changed your information because SQL*Plus and other database tools do not keep a record of changes. human resources. If you do not see a menu option described in this guide. you many not have access to all of the windows and functions described in this guide. If your tables are not synchronized with each other. When you use Oracle Applications to modify your data. and service management. we strongly recommend that you never use SQL*Plus or any other tool to modify Oracle Applications data unless otherwise instructed by Oracle Support Services. as well as Oracle Applications. different operating systems. you could change a row in one table without making corresponding changes in related tables. manufacturing. Oracle Applications also track who changes information. different networks. decision support. an integrated suite of more than 45 software modules for financial management. Consequently. network computers. Oracle offers its database. tools. Or. Oracle is the world’s leading supplier of software for information management. Oracle Applications Documentation Manager Oracle Corporation 500 Oracle Parkway Redwood Shores. CA 94065 U. along with related consulting. Thank You Thank you for choosing Oracle Process Manufacturing and this user’s guide.S. Mail your comments to the following address or call us directly at 650-506-7000.A.oracle. education. unified computing. and the world’s second largest software company. into a single. At the beginning of this guide is a Reader’s Comment Form that you can use to explain what you like or dislike about this user’s guide.even different database management systems. send an electronic mail message to appsdoc@us. and applications products. and information resource.com xiii . We value your comments and feedback. and support services in over 140 countries around the world. xiv . The topics discussed in this topic are: Introducing the Formula API Oracle Applications Packages Supplied Formula API Bill of Materials Wrapper Function and Stored Procedures Validating the User Name Formula API Introduction 1-1 .1 Formula API Introduction This document describes the Application Program Interfaces (APIs) that support external interfaces to the Oracle Process Manufacturing (OPM) Formula Management tables. and components for the Insert. Update and Delete features for the Formula APIs. What’s In This Document? This document describes the basic business needs. the APIs return one of the following status codes: S for success E for error U unknown/unexpected status. If there is a problem during execution of a call. you must code your wrapper function that passes the appropriate parameters to the APIs. and a brief explanation of each function: Function Formula Create Formula Detail Business Object Name GMD_FORMULA_xxx Description Creates formula header. detail and effectivity information. Creates or modifies the formula detail information. Much of the application is divided into module-specific objects that allow you to link OPM functionality into your own programs. and disconnecting from the database upon return. The interfaces can make use of the standard functionality and logic implemented in the Formula Management module. Formula APIs can process virtually all formula types. To make use of these APIs. You may also choose to write log files before calling and after returning from a function. architecture. the business object name. every formula should include at least one product and one ingredient. However. It can be used for modification of the formula header information. Your program will also be responsible for connecting to a database before calling an API function. When you import formulas you can now include all pertinent information using a friendly tool that does not have cryptic IDs and system specific information. GMD_FORMULA_DETAIL_xxx . The interface insures that your imported formulas contain the same detail as those you would enter manually on the OPM Formulas window. 1-2 Oracle® Process Manufacturing Formula API User’s Guide Which API Functions are Included? The following presents a list of Formula API functions.Introducing the Formula API Introducing the Formula API Formula APIs allow you to import Formula information from an existing formula management system into the Oracle Process Manufacturing Formula Management tables. major features. Formula APIs are currently written in PL/SQL which can be called by your own programs. Formula API Features Creating Updating and Deleting Information Proper Encapsulation Synchronous Processing Following the Business Hierarchy Detailed and Translatable Error Messages Formula API Support Policy Formula APIs are supported by Oracle. Oracle will ensure that the APIs function as designed.) Description Creates or modifies the formula effectivity information. Parses the formulated information from a flat (text) file and structures the data into PL/SQL table format that is passed as a parameter to API. You will need to design your own. This means: Oracle will provide objects and libraries needed to use to the APIs and the documentation for their use. Where xxx in the Business Object Name is PVT (private) or PUB (public). Formula API Introduction 1-3 .Introducing the Formula API Function Formula Effectivity Sample Wrapper Function Business Object Name GMD_FORMULA_EFFECTIVITY_xxx create_formula (Note: This is a sample wrapper function. Oracle will not support customer generated programs that use the APIs. These must be on your system for your interface to compile and link properly. or deleting a formula header. FND_MESSAGE .pls . modifying. modifying. Please refer to the Oracle Applications Coding Standards manual for additional details. This is used by the stored procedure to report status and error handling. Public Formula Detail package that the wrapper or user defined function calls. The business API can be used for creating.pls GMD_FORMULA_PVT GMDVFMHS.pls GMDVFMHB. or deleting a formula detail.pls Description Public Formula Header package that the user defined function calls.the standard Oracle Applications API version checking function. The private API is called by public formula header API after performing the necessary validations. modifying. Formula API Bill of Materials The following is a list of packages and files that are delivered with OPM Formula API. FND_PUB_MSG .Oracle Applications Packages Supplied Oracle Applications Packages Supplied Formula APIs make use of the following standard Oracle Applications packages: FND_API . Private Formula Header package that cannot be called directly by the user defined function. While creating a Formula header the API also creates Detail and Effectivity associated with this header.pls GMDPFMDB. Public Formula Effectivity package that the wrapper or user defined function calls. These packages are installed as part of the current release. The business API can be used for creating.pls GMDPFMHB. The business API can be used for creating. 1-4 Oracle® Process Manufacturing Formula API User’s Guide GMD_FORMULA_DETAIL_PUB GMDPFMDS.the standard Oracle Applications messaging function.pls GMDPFMEB. used to interrogate the procedure messages.pls GMD_FORMULA_EFFECTIVITY_PUB GMDPFMES.the standard Oracle Applications message retrieval function. Package Name GMD_FORMULA_PUB File Names GMDPFMHS. or deleting a formula effectivity. This is used by the stored procedure to check valid API version number and also contains constant variables such as TRUE and FALSE. pls GMDPSURB. Common formula package that defines common data type structure (PL/SQL table) for inserts or updates.pls Public Package for Surrogates GMDPSURS.pls GMDVFMEB. detail lines.pls GMDVFMDB. GMD_FORMULA_EFFECTIVITY_PVT GMDVFMES. Private Formula Header package that cannot be called directly by the user defined function. Public Formula Surrogate package used primarily for creating surrogate keys for formula header. The private API is called by the Public Formula Effectivity API after performing the necessary validations. prior to the formula line insertion the procedure ‘Detail_line_ val’ (included in this package) is called to check if the same line exists in the OPM system.pls Description Private Formula Detail package that cannot be called directly by the user defined function. It also uses lookup tables for validations.pls Public Validation Packages GMDPFMVB. Public Formula Validation package used by other procedures in the APIs to perform all business rules validations.pls GMDPFMVS.pls Formula API Introduction 1-5 . For example.Formula API Bill of Materials Package Name GMD_FORMULA_DETAIL_PVT File Names GMDVFMDS. and effectivity.pls GMD_FORMULA_COMMON_PKG GMDPFMCS. The private API is called by public formula detail API after performing the necessary validations. the defined calling function can make the API commit after performing the operation.Wrapper Function and Stored Procedures Wrapper Function and Stored Procedures A wrapper function is used for collating the formulated data in a specific structure (PL/SQL table). to insert all Formula details you can call the procedure ‘Insert_FormulaDetail’ defined in the public package GMD_FORMULA_DETAIL_PUB. This wrapper function calls the Formula API by passing this PL/SQL table as a parameter. 1-6 Oracle® Process Manufacturing Formula API User’s Guide . Optionally. Depending on the status returned. Validating the User Name The Formula API validates the user name that has been passed to the API against the fnd_user table. you can decide if the operation needs to be committed. The stored procedures return one of these the status codes: S for success E for error U unknown/unexpected status. If the user you enter does not have a valid ID. Depending on the action (creation/inserts or modification/updates) and the entity (header/detail/effectivity) these wrapper functions can call the public procedures defined in the APIs. the API returns an error without performing any other functions or validations. For example. The following topics are discussed: Using Formula API Business Objects Formula API Entity Diagram Formula API Business Object Interface Design Creating a New Formula Importing Formula Data Structures Formula API Business Objects 2-1 .2 Formula API Business Objects In order to use Formula API Business Objects it is important to understand the relationships of the table structure with all its entities. You should also understand the fundamental API business object interface design before you import formula data structures and manage any errors that arise during these operations. description and status or validity of a formula (active/inactive). quantity and customer specifics for a formula can define a unique effectivity. One or more detail lines for each header. including Supply Chain Planning (Material Requirement Planning and Advanced Planning and Scheduling).Using Formula API Business Objects Using Formula API Business Objects A formula is a method to prescribe ingredients and quantities that are required to manufacture a particular product or products. Each detail line provides the product/coproduct/ingredient/by-product specification for a formula. Effectivity also provides the link between a formula and routing (actual steps or operation carried out in a manufacturing setup). Formulas occasionally contain by-products and coproducts. version. Production Management and Costing. One or more effectivity that represents the set of conditions under which a formula can be used. For example: date. The information included in a formula is used in various other Oracle Manufacturing modules. 2-2 Oracle® Process Manufacturing Formula API User’s Guide . Formula information within the OPM application is comprised of: A header that provides the formula number. Formula APIs are business objects that can create or change the formula information. Formula API Entity Diagram Formula API Entity Diagram The following diagram shows the table structure for the Formula API business object along with all its entities: Formula API Business Objects 2-3 . Formula API Business Object Interface Design Formula API Business Object Interface Design The following is a schematic of the Oracle Process Manufacturing (OPM) stored procedure API mechanism. It shows the structure of the API and the mechanism needed to execute it. 2-4 Oracle® Process Manufacturing Formula API User’s Guide . It also indicates the functionality required to both execute and audit results. the function could retrieve the error message text from the error stack. formula details and formula effectivity are created.Main validation performed: a. and creates all Formula Details as separate lines. c. However. For changes to Formula Detail and Effectivity. you must follow these steps: Step 1: Collate formula data into a PL/SQL table format. The APIs also require certain standard parameters such as API version and API name which need to be passed by the wrapper function. Step 2: Call the Public API . After performing the appropriate tasks the APIs return the status code. b. A test function (‘Create_formula’) provided with the APIs describes a typical wrapper function that creates a PL/SQL table from a comma-delimited text file. the actual wrapper function may be designed differently. After the formula header is created successfully. For all updates or changes to the Formula Header information. the calling function may decide to commit the work. If the return code is an error. The API checks for valid formula number and version. Formula API Business Objects 2-5 . you can use an interface like Oracle forms. If a header has more than one line (which is usual).Creating a New Formula Creating a New Formula In order to use the Formula business object APIs effectively. The function parses through this flat file and creates the table structure that is passed as parameter to the ‘Insert_Formula’ procedure within the API ‘GMD_ FORMULA_HEADER_PUB’. The API checks for the existence of an appropriate User ID in the FND_USR table. the API creates a header only once (for the first line). Depending on this status code. or (Formula Number and Formula Version) need to be provided. For example. and prevents the creation of a formula. you need to ensure that relevant formula information is structured in a PL/SQL table format before passing it as a parameter to these APIs. the API puts error messages in an error stack. d. If there is no valid user. Formula ID. or optionally you can create a wrapper function that calls these APIs. The API checks every Formula Header to determine that there is at least one product and one ingredient associated with it. Since the test function is just a representation of a typical wrapper function. Formula APIs can be called through different types of sources. the Formula Line ID and Formula Effectivity ID need to be provided. and committing the work. after the formula (header. Step 4: Check if relevant formula information has been created.Creating a New Formula e. the calling function or wrapper function could analyze the errors from the message stack. 2-6 Oracle® Process Manufacturing Formula API User’s Guide . For example. Step 3: Review any error messages. You should check to determine if at least one product and one ingredient is associated with the newly created formula. commit the work. The status code could represent ‘S’ for success. No changes or updates are performed for any formulas that have cost rollups done on them. After executing these APIs successfully. For more information on error messages please refer to Appendix A . detail and effectivity) is created. ‘E’ for error or ‘U’ Unexpected or Unknown status. and run the appropriate Oracle application to test whether or not a new formula has been actually created. If an error ‘E’ has occurred. The API returns the status code as one of its parameters after it is executed. the Formula information should be tested using a different user interface. G_ FALSE which means that the API will not initialize the message list. Specifies whether the API was successful or failed: ‘S’ Successful ‘E’ failed due to expected error ‘U’ failed due to unexpected error x_msg_count number OUT Specifies number of messages added to message list. p_init_msg_list varchar2 IN N p_commit varchar2 IN N x_return_status varchar2 OUT - Formula API Business Objects 2-7 . The version sent by the calling function is compared to the internal version of the API and an unexpected error (U) is generated if these do not match. and if not supplied will default to FND_API. It is an optional parameter. If not supplied it will default to FND_API. Used to specify whether the message list should be initialized on entry to the API. Used to specify whether the API should commit its work before returning to the calling function. Understanding the General Input Structure All stored procedure API will be called with PL/SQL parameters. Standard parameters that are common to all API activities and their details are summarized in the following: Parameter p_api_version Type varchar2 IN/OUT IN Required Y Validation Validates version compatibility.Importing Formula Data Structures Importing Formula Data Structures The following topic demonstrates the mechanics of importing data structures for: Formula Header Formula Detail Formula Effectivity A single general input structure is described in the following topic. Examination of both the x_return_status and x_msg_count will indicate the pass/fail status of the call.G_FALSE. Using Input Parameters for Each Formula API The Formula API requires data to passed in as PL/SQL tables. it needs to create a table of type: p_formula_update_tbl_type The table type provides default values for all optional parameters.Importing Formula Data Structures Parameter x_msg_data Type varchar2 IN/OUT OUT Required - Validation Returns the messages in an encoded format. the default values set for these table types are different depending on the DML operation. 2-8 Oracle® Process Manufacturing Formula API User’s Guide . These parameters pass the item-specific data required to create an inventory item. it needs to create a table of type: p_formula_insert_tbl_type The specification for this is provided in this topic. Although the table types are similar. parameters can have formula data related to formula detail and effectivity. Since the header data can be in multiple instances it is passed as a PL/SQL table. If the wrapper function needs to insert or create new formula header detail. These messages can then be processed by the standard message functions as defined in Business Object API Coding Standards Document. However. If the wrapper function needs to update or delete a formula header detail. The wrapper functions can create these tables by referencing the table types in the API specifications. This specification is used for inserts.formula can be scaled formula_desc1 formula_desc2 formula_class fmcontrol_class inactive_ind varchar2 varchar2 varchar2 varchar2 number 70 70 32 32 5 null null null 0 Y N N N N Must exist on fm_form_cls with delete_mark=0 Not currently used. Field/Column formula_no formula_vers Type varchar2 number Length 32 4 Default Required Y Y Validation Must be non-space Must be > = 0 The formula_no/formula_vers combination must NOT exist on fm_form_mst Duplicates are not allowed. line_no number 5 Y Must be > 0 Duplicates are not allowed within line_type Formula API Business Objects 2-9 . You will note that no validation is applied to the descriptive flexfield segments. formula_type scale_type number number 5 5 0 N Y 0 .standard formula 0 .formula cannot be scaled 1 . must be null 0 = active 1 = inactive formula_id formulaline_id line_type number number number 5 Y -1 is an ingredient 1 is a product 2 is a by-product Line-type of 1 (product) must be in place against a particular formula before line types of -1 and 2 can be accepted.Importing Formula Data Structures Parameter Specification for p_formula_insert_tbl_type The parameter specification for p_formula_insert_tbl_type is described below. no rework 1 .manual phantom rework_type number 5 0 N 0 . delete_mark=0 Must be > = 0 Must exist on sy_uoms_mst Conversion to ic_item_ mst.Importing Formula Data Structures Field/Column item_no Type varchar2 Length 32 Default Required Y Validation Must exist in ic_item_mst with experimental_ind=0. Check fm_matl_dtl for line_type=1 where formula_id and item_id match the supplied criteria 2-10 Oracle® Process Manufacturing Formula API User’s Guide . 0 = automatic release 1 = partial release qty item_um number varchar2 4 ic_item_ mst.item_um (primary UOM) must be defined.000 scale_type number 5 1 N 0 . must exist on sy_ orgn_mst with delete_mark=0 Must exist on ic_item_mst with delete_mark=0 & inactive_ ind=0 Must be a product associated with the formula nominated above.linear scaling 2 .step scaling cost_alloc phantom_type number number 5 0 0 N N Must be in the range 0 to 1 inclusive 0 .default qty as stated fmeff_id orgn_code item_no number varchar2 varchar2 4 32 null N Y If supplied.fixed 1 .not a phantom 1 .automatic phantom replacement 2 . inactive_ ind=0.item _um Y N release_type number 5 Y scrap_factor number 0 N Must be >= 0 Must be <= 10. production 1 .Importing Formula Data Structures Field/Column formula_use Type number Length 5 Default Required Y Validation 0 . Must be > start_date Must be <= SY$MAX_DATE min_qty max_qty std_qty item_um number number number varchar2 5 5 5 4 0 99999999 9 N N Y Must be >= 0 Must be > 0 Must be > 0 Must be valid UOM from sy_ uoms_mst where delete_ mark=0 If different from the item_ master primary unit of measure.MSDS start_date date system date N Must be a valid date. SY$MAX_DATE end_date date SY$MAX _DATE N Must be a valid date. Must be > = 0 The routing_no/routing_vers combination must exist on fm_ rout_hdr where delete_ mark=0. Must be >= SY$MIN_DATE Must be <.item _um N preference routing_id routing_no routing_vers number number varchar2 number 5 10 32 5 1 N N* N* N* Must be >= 0 Must be non-space.planning 2 . customer_no varchar2 32 0 N Must exist on op_cust_mst with delete_mark=0 and co_ code=SY$DEFAULT_CO attribute1 attribute2 attribute3 attribute4 varchar2 varchar2 varchar2 varchar2 240 240 240 240 null null null null N N N N Formula API Business Objects 2-11 . a conversion must exist ic_item_ mst.costing 3 . Importing Formula Data Structures Field/Column attribute5 attribute6 attribute7 attribute8 attribute9 attribute10 attribute11 attribute12 attribute13 attribute14 attribute15 attribute16 attribute17 attribute17 attribute18 attribute19 attribute20 attribute21 attribute22 attribute23 attribute24 attribute25 attribute26 attribute27 attribute28 attribute29 attribute30 attribute_ category user_name Type varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 varchar2 Length 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 30 100 Default null null null null null null null null null null null null null null null null null null null null null null null null null null null null Required N N N N N N N N N N N N N N N N N N N N N N N N N N N N Y Validation Must exist on fnd_user 2-12 Oracle® Process Manufacturing Formula API User’s Guide . formula can be scaled formula_ desc1 formula_ desc2 formula_class varchar2 varchar2 70 70 FND_API.standard formula 0 . must be null 0 = active 1 = inactive formula_id number Y N Formula API Business Objects 2-13 .Importing Formula Data Structures Parameter Specification for p_formula_update_tbl_type The parameter specification for p_formula_update_tbl_type is described below. G_MISS_CHAR varchar2 32 FND_API. This specification is used for updates. G_MISS_CHAR fmcontrol_ class inactive_ind varchar2 32 FND_API. You will note that no validation is applied to descriptive flexfield segments. formula_type scale_type number number 5 5 0 N Y 0 . formula_vers number 4 Y Must be > = 0 formula_no/formula_ vers combination must NOT exist on fm_ form_mst Duplicates are not allowed.formula cannot be scaled 1 . Field/Column formula_no formula_vers Type varchar2 number Length 32 4 Default Required Y Y Validation Must be non-space Must be > = 0 formula_no/formula_ vers combination must NOT exist on fm_ form_mst Duplicates are not allowed. G_MISS_CHAR number 5 0 N N N Must exist on fm_ form_cls with delete_ mark=0 Not currently used. fixed 1 . inactive_ind=0.Importing Formula Data Structures Field/Column formulaline_ id line_type Type number number Length Default Required Validation 5 Y -1 . delete_ mark=0 Must be > = 0 Must exist on sy_ uoms_mst.item_ um Y N release_type number 5 Y 0 = automatic release 1 = partial release scrap_factor number 0 N Must be >= 0 Must be <= 10.by-product Line-type of 1 (product) must be in place against a particular formula before line types of -1 and 2 can be accepted.not a phantom 1 .step scaling cost_alloc phantom_type number number 5 0 0 N N Must be in the range 0 to 1 inclusive 0 .000 scale_type number 5 1 N 0 .automatic phantom replacement 2 .item_um (primary UOM) must be defined.product 2 .linear scaling 2 . line_no number 5 Y Must be > 0 Duplicates are not allowed within line_ type item_no varchar2 32 Y Must exist in ic_item_ mst with experimental_ind=0.ingredient 1 . qty item_um number varchar2 4 ic_item_mst. Conversion to ic_item_ mst.manual phantom 2-14 Oracle® Process Manufacturing Formula API User’s Guide . no rework 1 . Must be >= SY$MIN_ DATE Must be <.costing 3 . SY$MAX_ DATE end_date date SY$MAX_DATE N Must be a valid date.default qty as stated fmeff_id orgn_code number varchar2 4 FND_API.Importing Formula Data Structures Field/Column rework_type Type number Length 5 Default 0 Required N Validation 0 .production 1 .MSDS start_date date system date N Must be a valid date. must exist on sy_orgn_mst with delete_mark=0 Must exist on ic_item_ mst with delete_ mark=0 & inactive_ ind=0 Must be a product associated with the formula nominated above.planning 2 . Must be > start_date Must be <= SY$MAX_ DATE min_qty max_qty std_qty number number number 5 5 5 0 999999999 N N Y Must be >= 0 Must be > 0 Must be > 0 Formula API Business Objects 2-15 . Check fm_ matl_dtl for line_ type=1 where formula_id and item_ id match supplied criteria item_no varchar2 32 Y formula_use number 5 Y 0 . G_MISS_CHAR N If supplied. Importing Formula Data Structures Field/Column item_um Type varchar2 Length 4 Default ic_item_mst. G_MISS_CHAR N attribute7 varchar2 240 FND_API. Must be > = 0 routing_no/routing_ vers combination must exist on fm_rout_hdr where delete_mark=0. customer_no varchar2 32 0 N Must exist on op_cust_ mst with delete_ mark=0 and co_ code=SY$DEFAULT_ CO attribute1 varchar2 240 FND_API.item_ um Required N Validation Must be valid UOM from sy_uoms_mst where delete_mark=0 If different from the item_master primary unit of measure. G_MISS_CHAR N attribute2 varchar2 240 FND_API. G_MISS_CHAR N attribute5 varchar2 240 FND_API. G_MISS_CHAR N attribute3 varchar2 240 FND_API. a conversion must exist preference routing_id routing_no routing_vers number number varchar2 number 5 10 32 5 1 N N* N* N* Must be >= 0 Must be non-space. G_MISS_CHAR N 2-16 Oracle® Process Manufacturing Formula API User’s Guide . G_MISS_CHAR N attribute8 varchar2 240 FND_API. G_MISS_CHAR N attribute4 varchar2 240 FND_API. G_MISS_CHAR N attribute6 varchar2 240 FND_API. Importing Formula Data Structures Field/Column attribute9 Type varchar2 Length 240 Default FND_API. G_MISS_CHAR N attribute11 varchar2 240 FND_API. G_MISS_CHAR N attribute17 varchar2 240 FND_API. G_MISS_CHAR N attribute22 varchar2 240 FND_API. G_MISS_CHAR N attribute12 varchar2 240 FND_API. G_MISS_CHAR N attribute23 varchar2 240 FND_API. G_MISS_CHAR N Formula API Business Objects 2-17 . G_MISS_CHAR N attribute18 varchar2 240 FND_API. G_MISS_CHAR N attribute21 varchar2 240 FND_API. G_MISS_CHAR N attribute15 varchar2 240 FND_API. G_MISS_CHAR Required N Validation attribute10 varchar2 240 FND_API. G_MISS_CHAR N attribute13 varchar2 240 FND_API. G_MISS_CHAR N attribute17 varchar2 240 FND_API. G_MISS_CHAR N attribute20 varchar2 240 FND_API. G_MISS_CHAR N attribute19 varchar2 240 FND_API. G_MISS_CHAR N attribute14 varchar2 240 FND_API. G_MISS_CHAR N attribute16 varchar2 240 FND_API. G_MISS_CHAR N attribute28 varchar2 240 FND_API. G_MISS_CHAR N attribute_ category user_name varchar2 30 FND_API. G_MISS_CHAR N attribute29 varchar2 240 FND_API. G_MISS_CHAR N attribute26 varchar2 240 FND_API.Importing Formula Data Structures Field/Column attribute24 Type varchar2 Length 240 Default FND_API. G_MISS_CHAR N attribute27 varchar2 240 FND_API. G_MISS_CHAR N attribute30 varchar2 240 FND_API. G_MISS_CHAR N varchar2 100 Y Must exist on fnd_user 2-18 Oracle® Process Manufacturing Formula API User’s Guide . G_MISS_CHAR Required N Validation attribute25 varchar2 240 FND_API. A Messages and Errors This appendix covers the following topics: Handling Messages Interpreting Error Conditions Understanding Error Messages Messages and Errors A-1 . Gets the last message in the API message list A-2 Oracle® Process Manufacturing Formula API User’s Guide .pls: Initialize .Deletes one or more messages from the API message list Reset .Handling Messages Handling Messages APIs put result messages into a message list. Programs calling APIs can then get the messages from this list.Initializes the API message list Add . They should then call FND_MSG_PUB.Returns the number of messages in the API message list.Adds a message to the API message list Get . To add a message to the API message list. You can refer to Oracle Applications Coding Standards for complete documentation of these functions and procedures for usage information. developers should use the regular message dictionary procedures FND_MESSAGE.Add to fetch the messages off the message dictionary stack and add it to the API message list. This may be by issuing them to the user if calling the API from an interactive process. To get a message from the API message list. This procedure operates in 5 different modes : First .Resets the index used in getting messages Count_And_Get .Gets the next message in the API message list Last .SET_NAME and FND_ MESSAGE. The following utility functions are defined in the FND_MSG_PUB package. and process them appropriately.Gets a message from the API message list Count_Msg .Gets the first message in the API message list Next . API callers should use the procedure FND_MSG_PUB. or writing them to database tables or log files if calling the API from a batch process. Messages are stored in an encode format to enable API callers to find out message names by using the standard functions provided by the message dictionary. Neither API developers nor API callers can access this list except through calling the API message utility routines mentioned below. it also returns the message data.Get. If this number is one.Returns the number of messages in the API message list Delete . The structure of the message list is not public.SET_TOKEN to set the message name and tokens on the message dictionary stack. in the file AFASMSGS. then the message will be retrieved in US English. this can be used to monitor the success or failure of the procedure call.Gets the previous message in the API message list Specific . If the message is not found in the required language.Understanding Error Messages Previous . and can be monitored through the return x_msg_count.Successful E .Unexpected error Understanding Error Messages These error messages will be output to the stored procedure message file. The following is a complete listing of Formula API Error Messages: Error Messages (Listed Alphabetically) Duplicate line number for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Experimental item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Formula number/version &FORMULA_NO &FORMULA_VERS already exists Formula number/version &FORMULA_NO &FORMULA_VERS cannot be located Message Code FM _DUPLICATE_LINE_NO FM _EXPERIMENTAL_ITEM FM _FORMULA_ALREADY_EXISTS FM _INVALID_FORMULA Messages and Errors A-3 .Gets a specific message from the API message list Interpreting Error Conditions The parameter x_return_status indicates whether the API was successful or failed. The values are as follows: S . Displaying Errors in Languages Other than English Language translation of error messages is determined by the environment variable NLS_LANGUAGE.Expected error U . In conjunction with the x_return_ status. Understanding Error Messages Error Messages (Listed Alphabetically) Ingredient/by-product lines cannot be loaded until product is established for formula/version &FORMULA_NO &FORMULA_VERS Invalid cost allocation for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid customer &CUST_NO Invalid end_date against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid formula class for formula/version &FORMULA_NO &FORMULA_VERS Invalid formula type for formula/version &FORMULA_NO &FORMULA_VERS Invalid formula_use for formula/version &FORMULA_NO &FORMULA_VERS Invalid item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid item number &ITEM_NO Invalid line number for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid line type for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid maximum quantity against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid minimum quantity against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid phantom type for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Message Code FM _MISSING_PRODUCT FM_INVALID_COST_ALLOC FM_INVALID_CUSTOMER FM_INVALID_END_DATE FM _INVALID_FORMULA_CLASS FM _INVALID_FORMULA_TYPE FM_INVALID_FORMULA_USE FM _INVALID_ITEM FM_INVALID_ITEM_NO FM_INVALID_LINE_NO FM_INVALID_LINE_TYPE FM_INVALID_MAX_QTY FM_INVALID_MIN_QTY FM_INVALID_PHANTOM_TYPE A-4 Oracle® Process Manufacturing Formula API User’s Guide . Understanding Error Messages Error Messages (Listed Alphabetically) Invalid preference against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid product &ITEM_NO for formula/version &FORMULA_NO &FORMULA_VERS Invalid release type for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid rework type for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid routing number/version &ROUTING_ NO &ROUTING_VERS Invalid scale type for formula/version &FORMULA_NO &FORMULA_VERS Invalid scrap factor for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS Invalid standard quantity against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid start_date against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid UOM &ITEM_UM against effectivity for formula/version &FORMULA_NO &FORMULA_VERS Invalid user name &USER_NAME Missing formula number Missing formula version Negative quantity not permitted see item &ITEM_NO in formula/version &FORMULA_ NO &FORMULA_VERS Message Code FM_INVALID_PREFERENCE FM_INVALID_FORMULA_PRODUCT FM_INVALID_RELEASE_TYPE FM_INVALID_REWORK_TYPE FM_INVALID_ROUTING FM _INVALID_SCALE_TYPE FM_INVALID_SCRAP_FACTOR FM_INVALID_STD_QTY FM_INVALID_START_DATE FM_INVALID_UOM FM_INVALID_USER FM _MISSING_FORMULA_NO FM _MISSING_FORMULA_VERS FM _NEGATIVE_QTY Messages and Errors A-5 . Understanding Error Messages Error Messages (Listed Alphabetically) No conversion defined from &ITEM_UM to primary UOM for item &ITEM_NO in formula/version &FORMULA_NO &FORMULA_VERS No conversion to standard UOM for item &ITEM_NO Supplied Organization code &ORGN_CODE is invalid Message Code FM_UOM_CONVERSION FM_MISSING_UOM_CONVERSION FM_INVALID_ORGN_CODE A-6 Oracle® Process Manufacturing Formula API User’s Guide . 2-12. 2-7 FND_MESSAGE. 2-10. 2-9 fm_matl_dtl. 1-1 API mechanism. 2-11. 1-5 DML operation. 2-5 creating a new formula. 2-5 description. 2-16 D delete_mark. 2-9 detail. 2-2 interface design. 2-15 entity. 2-4 by-product. 2-5 common formula package. 2-7 comma-delimited text file. 2-16 audit API results. 2-4 attribute_category. 2-4 experimental_ind. 2-9 fm_form_cls. 2-18 attributes. 2-11 Index-1 . 2-2 cost_alloc. 2-10 descriptive flexfield segments. 2-10 flexfield segments. 2-15 FND_API. 2-5 formula creation. 2-13 fmeff_id. 2-12 FND_USR. 2-11 fmcontrol_class. 1-4 fnd_user.G_FALSE. 2-10 B business objects formula API. 2-2 status. 2-2 C call pass/fail status. 1-2 create formula effectivity. 2-2 F fixed scaling. 2-15 FND_API. 2-2 number. 2-11. 2-9. 1-6 detail package. 2-2 validity. 2-11. private formula. 1-2 create formula header. 2-13. 2-10. 1-5 coproduct. 2-14 create formula detail. 1-4. automatic release. 1-2 Create_formula. 1-4 FND_PUB_MSG.Index A API. 2-4 automatic phantom replacement. 2-8 E 2-10 effectivity. 1-6 execute API. 1-6. 2-10 fm_rout_hdr. 2-10. 2-5 customer_no. 2-2 end_date. 2-9. 2-9. 2-7 GMD_FORMULA_COMMON_PKG. 2-10. 2-5 creation. private formula. 2-9. 1-5 GMDPFMDB.pls. 1-4 GMDPFMEB. GMDPSURB. 2-2 entity diagram. 1-5 GMD_FORMULA_EFFECTIVITY_xxx. 2-13 formula_no. 2-15 formula_vers. 1-3 formula header. 1-6. 2-11.pls. GMDVFMES. 2-13 formula_desc1. 1-4 GMD_FORMULA_EFFECTIVITY_PVT.pls. 2-13 formula_use. 2-9. 2-14 GMDPFMES.pls. general. 1-6 interface design. 2-9.pls. 1-2 formula effectivity. 2-14 linear scaling. 1-4 GMD_FORMULA_xxx.pls.pls.pls. 2-8 header package. 1-4 GMDPFMDS. GMDVFMEB. 2-10 ic_item_mst. 2-15 item_um. common. 2-14. 1-2 modification. 2-10. 2-9. 2-13 ingredient. 2-7 Insert_FormulaDetail. 2-9. 2-13 formula_type. GMDVFMDB. GMDPFMHB.version.pls. GMDPFMVB. 1-2 GMDPFMCS. 2-10. 2-10 item_master. 1-5 GMD_FORMULA_DETAIL_PUB. 1-2 information. 1-2 formula package. 2-5 GMD_FORMULA_PUB. 1-2 creation. 2-9. 2-13 formula_id. 1-3 creation. 1-2 information. 1-5 formula_class. 2-8 G G_MISS_CHAR.pls. GMDVFMHS. 2-16 item-specific data. 2-9. 2-10 Index-2 . 2-10 importing formula information. GMDPFMVS. 2-2 input structure.pls. GMDVFMHB.pls. 1-2 formula detail. 2-2 formula API business objects.pls. 2-13. business objects. 1-4. 1-4 L line_no. 2-13 formulaline_id. 2-8 item_id. 2-14 line_type. 1-6 GMD_FORMULA_DETAIL_PVT. 2-9. 1-2 formula information.pls. 2-3 Formula Create. importing. 2-9. 2-11.pls. 1-2 GMD_FORMULA_EFFECTIVITY_PUB. GMDPSURS. 2-9. 2-11 item_no. 1-4 GMD_FORMULA_PVT. 1-5 GMD_FORMULA_DETAIL_xxx. 1-2 inactive_ind. 2-13 formula_desc2. GMDVFMDS. 2-4 inventory item. 1-3 GMD_FORMULA_HEADER_PUB. 1-4 1-4 1-4 1-5 1-5 1-5 1-5 1-5 1-5 1-5 1-5 1-4 1-4 H header. 2-14. 1-4 I ic_item_mst. 2-2 header data. 2-10.item_um.pls.pls. GMDPFMHS. 2-15 general input structure. 1-5 public package. 2-11. 2-7 p_formula_insert_tbl_type. 1-5 public formula validation package. 2-8 start_date. 2-15 modifying formula header information. 2-15 routing_id. 2-15 message encoding. 2-13. 2-8. 1-4 processing standard message functions. 2-10 user name validation. 2-7 message list. 1-3 scale_type. 2-10. 2-5 U UOM. 2-16 routing_no. 2-11. 2-18 Index-3 . 2-10. 2-10. in calling function. 2-16 primary UOM. 1-3 parameters. 2-12. 1-6. 2-8 p_init_msg_list. 2-11. public procedures. public formula. 2-10. 2-14 R release_type. 1-3 partial release. 2-11 UOM. 2-10. 1-2 public packages. 1-2. 2-8 product. 2-11. call. 2-9 p_formula_update_tbl_type. 2-7 p_commit. 1-6 1-5 Q qty. 2-16 routing_vers. 2-7 phantom. specifying number of messages added. 1-5 T table structure. 2-11 Oracle forms. 2-11. 2-14 scrap_factor. 2-5 O op_cust_mst. comma-delimited. 2-15 std_qty. 2-15 step scaling. 2-11. validation. 2-10 private formula detail package. orgn_code. 2-10. 2-11 SY$MAX_DATE. 2-10 rework_type. 2-10 P p_api_version. automatic. API. 2-10 stored procedure.M max_qty. 2-3 text file. 2-4 support policy. 2-7. 1-6 preference. primary. 2-10 phantom_type. surrogates. 2-10 phantom replacement. 2-11 SY$MIN_DATE. 2-11. passing in API. 2-14 standard message function processing. 2-14 PL/SQL. 2-16 N new formula creation. 1-5 SY$DEFAULT_CO. 2-15 2-5 S sample wrapper function. 1-3. 2-7 parameter. 2-8 PL/SQL table. 2-5. 1-5 private formula header package. 2-10. 2-11 sy_orgn_mst. 2-11. 2-9. 1-6 user_name. 2-2 public formula surrogate package. 1-3 surrogate package. 2-8 message list initialization. 1-6. 2-10 pass/fail status. 2-7 min_qty. 2-7 parsing formulated information. 2-14 rework. 1-3 X x_msg_count. 1-6 validating the user name. validation. sample. 2-7 W wrapper function. 2-7 x_msg_data. 2-7 Index-4 . 2-8 wrapper function. 1-5 version compatibility. 1-6 validation package. 1-6. public formula.V valid ID. 2-8 x_return_status.
Copyright © 2024 DOKUMEN.SITE Inc.