Pages

Showing posts with label e-Business Suite. Show all posts
Showing posts with label e-Business Suite. Show all posts

Tuesday, April 16, 2013

Lot Genealogy, Part 3: Debugging Lots and Batches

As you might have noticed I've just updated the LOT_GENEALOGY source code for this project to a new version following the discovery of a bug where the product of a batch is two different item numbers. This is a rare occurrence in our system, which is why it went undetected for so long, but it might not be in yours.

Rather than dwell on that I thought I'd talk about exactly what the process was that led to us discovering the fixing the error.

The first report came from the users; a lot which they knew had two item numbers was only showing one. Other lots didn't seem to be affected. This was then traced back to a single batch, 73591, running this SQL gave us the transactions that affected the cache for that batch. To publish this data I'm obfuscating the data (see here);

SELECT LGG.TRANSACTION_ID,
       HIDEDATA.Hide('LGG.LN', LGG.LOT_NUMBER) Lot_Number,
       LGG.TRANSACTION_QUANTITY,
       LGG.TRANSACTION_TYPE_NAME,
       LGG.Item_Number,
       HIDEDATA.Hide('LGG.ID', LGG.Item_Description) Item_Description,
       LGG.ITEM_TYPE
  FROM LOT_GENEALOGY_GETTRANSACTIONS LGG
 WHERE 1 = 1
   AND LGG.Batch_No = '73591';

The result of this is the following transactions;

LG Transactions For A Single Batch
As you can see the first thing we have is three "WIP Completion" transactions. Each of these represents the completion of the batch and the generation of an output. In this case Item Numbers 073081 and 07440. However without knowing what information was put *into* the batch in the first place it's not possible to usefully use this information in the Genealogy - It has to wait until the "WIP Issue" transactions are processed (each of which represents an ingredient).

The next stage for debugging the cache was to (on a test system!) change the LOT_GENEALOGY_GETTRANSACTIONS view so that rather than looking at *everything* it only looks at the records for a single batch - this is simply done by adding the following where clause to the view SQL;

-- Restrict transactions to a single batch (for debugging)
AND GBH.Batch_No = '73591'

Now we're restricted the input records to just those affecting that batch we can just re-build the whole cache - it will take longer to do the delete than the insert. The script to do it is;

begin
  -- Call the procedure
  lot_genealogy.refreshwholecache;
end;


Once that has been completed the entire content of the cache is the single batch we're tracking. The SQL to show it is;

SELECT HIDEDATA.Hide('LGG.LN', LGW.Master_Lot_Number) Master_Lot_Number,
       HIDEDATA.Hide('LGG.LN', LGW.Ingred_Lot_Number) Ingred_Lot_Number,
       LGW.Ingred_Item_Number,
       HIDEDATA.Hide('LGG.ID', LGW.Ingred_Item_Description) Ingred_Item_Description,
       LGW.Ingred_Item_Type_Code,
       LGW.Batch_Number,
       HIDEDATA.Hide('LGG.LN', LGW.PRODUCT_LOT_NUMBER) PRODUCT_LOT_NUMBER,
       LGW.PRODUCT_ITEM_NUMBER,
       HIDEDATA.Hide('LGG.ID', LGW.Product_Item_Description) Product_Item_Description,
       LGW.Product_Item_Type_Code
  FROM LOT_GENEALOGY_WHEREUSED LGW
 WHERE 1 = 1


The result of this is;

Lot Genealogy Cache: Result for a Single Batch
As you can see the only product for Ingredient Lot LGG.LN 37 is item number 073002, if we look at the transactions earlier we can see that it should be reporting Item Number 07440 as well - it's not which means something is going wrong in the "WIP Issue" part of the cache processing.

If we look at the source code (available here - via Google Drive) you'll see that the final part of the WIP Issue is creating the records in LOT_GENEALOGY_BATCH_PRODUCT so the next stage to check is to see if these records are being created correctly. Here is the SQL;

SELECT LGBP.batch_number,
       HIDEDATA.Hide('LGG.LN', LGBP.PRODUCT_LOT_NUMBER) PRODUCT_LOT_NUMBER,
       LGBP.product_item_number,
       HIDEDATA.Hide('LGG.ID', LGBP.Product_Item_Description) Product_Item_Description,
       LGBP.product_item_type_code
  FROM LOT_GENEALOGY_BATCH_PRODUCT LGBP
 WHERE 1 = 1
   AND LGBP.Batch_Number = '73591'


This gives us the result;

Lot Genealogy Batch Products
This shows us that the correct batch products are being recorded - this is important as we now have both ends of the transaction; the correct transactions are going in and the correct products are coming out. However we also know that the cache isn't being updated correctly therefore the culprits must be the two pieces of SQL that are actually doing the inserts.

If you look at the first one;

INSERT INTO NOETIX_SYS.Lot_Genealogy_WhereUsed
    SELECT v_Transaction.Lot_Number, -- Master_Lot_Number
           v_Transaction.Lot_Number, -- Ingred_Lot_Number
           v_Transaction.Item$item, -- INGRED_ITEM$ITEM
           v_Transaction.Item_Description, -- INGRED_ITEM_DESCRIPTION
           v_Transaction.Item_Type_Code, -- INGRED_ITEM_TYPE_CODE
           v_Transaction.Batch_Number, -- Batch_Number
           v_Product.Product_Lot_Number, -- Product_Lot_Number
           v_Product.PRODUCT_ITEM$ITEM, -- PRODUCT_ITEM$ITEM
           v_Product.PRODUCT_ITEM_DESCRIPTION, -- PRODUCT_ITEM_DESCRIPTION
           v_Product.PRODUCT_ITEM_TYPE_CODE -- PRODUCT_ITEM_TYPE_CODE
      FROM DUAL
     WHERE NOT EXISTS
     (SELECT 1
              FROM NOETIX_SYS.Lot_Genealogy_WhereUsed LGI
             WHERE LGI.MASTER_LOT_NUMBER = v_Transaction.Lot_Number
               AND LGI.Ingred_LOT_NUMBER = v_Transaction.Lot_Number
               AND LGI.Batch_Number = v_Transaction.Batch_Number
               AND (v_Product.Product_Lot_Number IS NULL AND
                   LGI.PRODUCT_LOT_NUMBER IS NULL OR
                   v_Product.Product_Lot_Number = LGI.PRODUCT_LOT_NUMBER));


You can see that this is actually just a select from DUAL so the fact that it's only working on the first pass (i.e. for the first product) means that the offending part of the code must be the NOT EXISTS.

Looking at the WHERE clause in the sub-select reveals that it's not using the Product_Item_Number field. Not using this field means that after it's inserted the first product it mistakes the second one for a duplicate and skips over it.

Altering the final AND statement to;

AND (v_Product.Product_Lot_Number IS NULL AND LGI.PRODUCT_LOT_NUMBER IS NULL OR (v_Product.Product_Lot_Number = LGI.PRODUCT_LOT_NUMBER AND v_Product.Product_Item_Number = LGI.PRODUCT_ITEM_NUMBER))

For BOTH pieces of SQL (the one updating  all the existing records as well as this one which is creating a new master record) addresses the issue logically, if you rebuild the cache from scratch (using the script above) and re-run the SQL to get the content of the cache you will now see;

Lot Genealogy Cache - Complete
The first thing you notice is there are a lot more records. The new records are for Item Number 07440 which is the one we were missing earlier.

If you do a source comparison between the new and old versions of the package you'll notice that this wasn't the only change I made - I've added a great deal more logging to the WIP Issue transaction so it's possible to see what is going on and what "SQL%ROWCOUNT = 0" actually means! I also added a warning to WIP Completion if no records are updated.

I hope this is of some interest ... Debugging an application, even one you've written yourself, is a skill that's very difficult to transfer. Hopefully there is enough information here for people to at least make a start for future issues (which will, by their very nature, be completely different I'm sure!).

Tuesday, April 9, 2013

Lot Genealogy (Part 2): Automating Testing of a Genealogy

If you are going to roll out any caching of your lot genealogy data the one clear thing you have to get right is testing. If, like us, you are working in a highly regulated environment it's necessary to ensure that you've got your testing right.

To this end I've created a new table called LOT_GENEALOGY_WHEREUSED_TESTS;

Lot_Genealogy_WhereUsed_Tests Table Description
The purpose of this new table is to hold copies of the lot genealogy data from Lot_Genealogy_WhereUsed. By holding these "snapshots" we can check after each rebuild of the cache that the data that was there and we had previously validated as correct is still there.

To create tests the following SQL will insert an existing Lot Genealogy into the testing table;

INSERT INTO LOT_GENEALOGY_WHEREUSED_TESTS
  SELECT 'ATR002', -- test_Ref
         'Product lot (166449) consists of two items (038003 and 038001)', -- test_description
         -- data from Lot Genealogy
         MASTER_LOT_NUMBER,
         INGRED_LOT_NUMBER,
         INGRED_ITEM_NUMBER,
         INGRED_ITEM_DESCRIPTION,
         INGRED_ITEM_TYPE_CODE,
         BATCH_NUMBER,
         PRODUCT_LOT_NUMBER,
         PRODUCT_ITEM_NUMBER,
         PRODUCT_ITEM_DESCRIPTION,
         PRODUCT_ITEM_TYPE_CODE
    FROM LOT_GENEALOGY_WHEREUSED LGW
   WHERE 1 = 1
     AND LGW.MASTER_LOT_NUMBER = '0490/0002';


This SQL is taking the lot genealogy for Master Lot Number 0490/0002 and copying it into the testing table, adding a test reference (ATR002) and a test description so we know what the test is supposed to be checking for.

That, as they say, was the easy bit. Now we need to create some SQL that is capable of running a test and returning a result. Our reporting tool (in case you can't tell from my other blog posts!) is SQL Server Reporting Services (SSRS) hence I'm going to split the SQL into two pieces, one to give me a list of all the tests and the other to run an individual test - SSRS will allow me to embed the latter as a sub-report into a report driven by the former.

List of Tests SQL

This was by far the easiest of the two;

SELECT DISTINCT LGWT.TEST_REF VALUE,
                LGWT.Test_Ref || ' (Lot ' || LGWT.MASTER_LOT_NUMBER || ')' LABEL
  FROM LOT_GENEALOGY_WHEREUSED_TESTS LGWT
 ORDER BY 1, 2


This returns something similar to;

List of Tests Generated Using SQL
I've added the bit of additional detail (for the Label) just so that in addition for being able to use this in the main report to get a list of tests I can also use it in the sub-report as a source for a picker on the "Test_Ref" parameter.

Run A Test SQL

This is slightly larger but here's the code then I'll try and explain it;

SELECT :Test_Ref "Test Ref",
       (SELECT TEST_DESCRIPTION
          FROM LOT_GENEALOGY_WHEREUSED_TESTS LGWT1
         WHERE LGWT1.TEST_REF = :Test_Ref
           AND ROWNUM = 1) "Test Description",
       TR.Test_Row_Count "Test Row Count",
       TR.Cache_Row_Count "Cache Row Count",
       TR.Union_Row_Count "Union Row Count",
       CASE
         WHEN TR.Test_Row_Count = TR.Cache_Row_Count AND
              TR.Cache_Row_Count = TR.Union_Row_Count THEN
          'PASS'
         ELSE
          'FAIL'
       END "Test Result"
  FROM (SELECT (SELECT COUNT(*)
                  FROM LOT_GENEALOGY_WHEREUSED_TESTS LGWT1
                 WHERE LGWT1.TEST_REF = :Test_Ref) Test_Row_Count,
               (SELECT COUNT(*)
                  FROM LOT_GENEALOGY_WHEREUSED LGW
                 WHERE LGW.MASTER_LOT_NUMBER =
                       (SELECT MASTER_LOT_NUMBER
                          FROM LOT_GENEALOGY_WHEREUSED_TESTS
                         WHERE TEST_REF = :Test_Ref
                           AND ROWNUM = 1)) Cache_Row_Count,
               (SELECT COUNT(*)
                  FROM (SELECT MASTER_LOT_NUMBER,
                               INGRED_LOT_NUMBER,
                               INGRED_ITEM_NUMBER,
                               INGRED_ITEM_DESCRIPTION,
                               INGRED_ITEM_TYPE_CODE,
                               BATCH_NUMBER,
                               PRODUCT_LOT_NUMBER,
                               PRODUCT_ITEM_NUMBER,
                               PRODUCT_ITEM_DESCRIPTION,
                               PRODUCT_ITEM_TYPE_CODE
                          FROM LOT_GENEALOGY_WHEREUSED_TESTS LGWT1
                         WHERE LGWT1.TEST_REF = :Test_Ref
                        UNION
                        SELECT MASTER_LOT_NUMBER,
                               INGRED_LOT_NUMBER,
                               INGRED_ITEM_NUMBER,
                               INGRED_ITEM_DESCRIPTION,
                               INGRED_ITEM_TYPE_CODE,
                               BATCH_NUMBER,
                               PRODUCT_LOT_NUMBER,
                               PRODUCT_ITEM_NUMBER,
                               PRODUCT_ITEM_DESCRIPTION,
                               PRODUCT_ITEM_TYPE_CODE
                          FROM LOT_GENEALOGY_WHEREUSED LGW
                         WHERE LGW.MASTER_LOT_NUMBER =
                               (SELECT MASTER_LOT_NUMBER
                                  FROM LOT_GENEALOGY_WHEREUSED_TESTS
                                 WHERE TEST_REF = :Test_Ref
                                   AND ROWNUM = 1))) Union_Row_Count
          FROM DUAL) TR


As you can see it takes a single parameter, the Test Reference Number. How it works is it counts the number of records in the cache, counts the number of records in the test table, and then does a select of all the records in the test table and, using a straight UNION, all the records in the cache. Because of the way UNIONs work (stripping out duplicates) the COUNT of the number of records returned by the UNION should be the same as the number of records in each of the other two queries. If they are all the same the TEST_RESULT is 'PASS' otherwise it's 'FAIL'.

NOTE: I'm sure this could be done a lot more efficiently but to be honest given the relative sizes of the tables I don't think you'll be sitting round too long for a result. On our system it takes less then .02 of a second. Your mileage will vary, but probably not by much!

Now that I've got the SQL I've setup a simple SSRS report to display the result for a single test back to me;

SSRS Report Showing A Single Test Result
You'll also notice that the test result includes a listing of all the records included in the test. This is a simple SELECT * ... WHERE TEST_REF = ... so I'm not going to give you the SQL for it.

The master report looks like this (in Report Builder 3);

SSRS Master Reporting Showing All Tests
I've included text boxes (on each page as part of the footer) to record who the Tester and Checker are and the Date. For our internal quality purposes we need this level of detail, you might not but what's the harm?

When executed the report appears like this;

SSRS Testing Report - Final Result
Hopefully you will find this useful.

Thursday, August 23, 2012

PL/SQL: Using R12 Item Open Interface Tables

I'm sure we won't be the only company to need to do a batch update of all the existing Items (in INV.MTL_SYSTEM_ITEMS_B) so I thought I'd share this. Basically using the interface tables and Concurrent Request allows you to make updates to the existing reports in a controlled (and Oracle Approved) way.

I'm going to talk about doing an UPDATE but CREATE will work in pretty much the same way (for various reasons I'm not going to look at DELETE and I imagine - even if oracle supported it - most people would be in the same boat).

The first step is to identify the open interface table;
  • INV.MTL_System_items_Interface
First of all it's worth doing a quick SELECT * ... from the interface table and check to make sure it's empty before you start (ironically when writing this post I discovered two existing rows which had errored during our R12 upgrade 10 months ago so it's definitely worth a look!).

The columns from the MTL_System_Items_Interface table are listed at the every end of this post (just for your reference). The critical columns that have to have values in order for the update to work are;

Organization_Id
Process_Flag (must be 1)
Item_Number (of you can use SEGMENT1)
Transaction_Type (must be either UPDATE or CREATE)

Now if you want to insert records into the interface table it's probably best to use a SELECT as part of the SQL (i.e. have the rows you want to change listed in another table).

The SQL updates details on the item master from a table called PD_Item_Mst stored in a remove database across a database link (REMOTE_DATABASE). This updating flexfields in the item master (attributes 23,25,22, and 11). Here's the sample SQL;

INSERT INTO INV.MTL_SYSTEM_ITEMS_INTERFACE
  (ORGANIZATION_ID,
   PROCESS_FLAG,
   ITEM_NUMBER,
   TRANSACTION_TYPE,
   ATTRIBUTE23,
   ATTRIBUTE25,
   ATTRIBUTE22,
   ATTRIBUTE15)
  SELECT 1, -- organization_id
         1, -- process_flag
         item_no, -- item_number
         'UPDATE', -- transaction_type
         cd_flag, -- attribute23
         in_house, -- attribute25
         inv_class, -- attribute22
         DECODE(no_colours, 'INT', 98, 'CO', 97, 'FG', 99) -- attribute15
    FROM pd_item_mst@REMOTE_DATABASE


Once you've got the items loaded into the interface table you then need to log into Oracle e-Business Suite and perform the import.

Once you have logged in you'll need the "Inventory" reponsiiblity in order to make the changes. Once you have switched to the "Inventory" responsibility select Items then Import and finally "Import Items";

Importing Items


If, like us, you have multiple Organizations you will see the dialog above and have to pick which Organisation you wish to work with. When you've picked an Organization you will then be presented with the Concurrent Request screen;

Importing Items Concurrent Request
Make sure you have changed the Create or Update Option so that it is 1 for Inserting Items, and 2 for Updating Items. When you're ready click "Submit".

When completed check the INV.MTL_SYSTEM_ITEMS_INTERFACE table to see if any lines are remaining and are unprocessed. If any are unprocessed (erroring), then check in the INV.MTL_INTERFACE_ERRORS table for the reason.

Key to this working is that the ORG_ID in the lines is the same as the Concurrent Req (sounds obvious, but there is aflag which seems to indicate it will run for all orgs, but doesn’t). Also that the Transaction type in the lines matches the option in the concurrent request i.e. both Update, or both Create.

Hope you found this useful ...



List of Columns on the INV.MTL_System_Items_Interface table;
SQL> DESC INV.MTL_System_items_Interface
Name                           Type           Nullable Default Comments
------------------------------ -------------- -------- ------- --------
INVENTORY_ITEM_ID              NUMBER         Y                        
ORGANIZATION_ID                NUMBER         Y                        
LAST_UPDATE_DATE               DATE           Y                        
LAST_UPDATED_BY                NUMBER         Y                        
CREATION_DATE                  DATE           Y                        
CREATED_BY                     NUMBER         Y                        
LAST_UPDATE_LOGIN              NUMBER         Y                        
SUMMARY_FLAG                   VARCHAR2(1)    Y                        
ENABLED_FLAG                   VARCHAR2(1)    Y                        
START_DATE_ACTIVE              DATE           Y                        
END_DATE_ACTIVE                DATE           Y                        
DESCRIPTION                    VARCHAR2(240)  Y                        
BUYER_ID                       NUMBER         Y                        
ACCOUNTING_RULE_ID             NUMBER         Y                        
INVOICING_RULE_ID              NUMBER         Y                        
SEGMENT1                       VARCHAR2(40)   Y                        
SEGMENT2                       VARCHAR2(40)   Y                        
SEGMENT3                       VARCHAR2(40)   Y                        
SEGMENT4                       VARCHAR2(40)   Y                        
SEGMENT5                       VARCHAR2(40)   Y                        
SEGMENT6                       VARCHAR2(40)   Y                        
SEGMENT7                       VARCHAR2(40)   Y                        
SEGMENT8                       VARCHAR2(40)   Y                        
SEGMENT9                       VARCHAR2(40)   Y                        
SEGMENT10                      VARCHAR2(40)   Y                        
SEGMENT11                      VARCHAR2(40)   Y                        
SEGMENT12                      VARCHAR2(40)   Y                        
SEGMENT13                      VARCHAR2(40)   Y                        
SEGMENT14                      VARCHAR2(40)   Y                        
SEGMENT15                      VARCHAR2(40)   Y                        
SEGMENT16                      VARCHAR2(40)   Y                        
SEGMENT17                      VARCHAR2(40)   Y                        
SEGMENT18                      VARCHAR2(40)   Y                        
SEGMENT19                      VARCHAR2(40)   Y                        
SEGMENT20                      VARCHAR2(40)   Y                        
ATTRIBUTE_CATEGORY             VARCHAR2(30)   Y                        
ATTRIBUTE1                     VARCHAR2(240)  Y                        
ATTRIBUTE2                     VARCHAR2(240)  Y                        
ATTRIBUTE3                     VARCHAR2(240)  Y                        
ATTRIBUTE4                     VARCHAR2(240)  Y                        
ATTRIBUTE5                     VARCHAR2(240)  Y                        
ATTRIBUTE6                     VARCHAR2(240)  Y                        
ATTRIBUTE7                     VARCHAR2(240)  Y                        
ATTRIBUTE8                     VARCHAR2(240)  Y                        
ATTRIBUTE9                     VARCHAR2(240)  Y                        
ATTRIBUTE10                    VARCHAR2(240)  Y                        
ATTRIBUTE11                    VARCHAR2(240)  Y                        
ATTRIBUTE12                    VARCHAR2(240)  Y                        
ATTRIBUTE13                    VARCHAR2(240)  Y                        
ATTRIBUTE14                    VARCHAR2(240)  Y                        
ATTRIBUTE15                    VARCHAR2(240)  Y                        
PURCHASING_ITEM_FLAG           VARCHAR2(1)    Y                        
SHIPPABLE_ITEM_FLAG            VARCHAR2(1)    Y                        
CUSTOMER_ORDER_FLAG            VARCHAR2(1)    Y                        
INTERNAL_ORDER_FLAG            VARCHAR2(1)    Y                        
SERVICE_ITEM_FLAG              VARCHAR2(1)    Y                        
INVENTORY_ITEM_FLAG            VARCHAR2(1)    Y                        
ENG_ITEM_FLAG                  VARCHAR2(1)    Y                        
INVENTORY_ASSET_FLAG           VARCHAR2(1)    Y                        
PURCHASING_ENABLED_FLAG        VARCHAR2(1)    Y                        
CUSTOMER_ORDER_ENABLED_FLAG    VARCHAR2(1)    Y                        
INTERNAL_ORDER_ENABLED_FLAG    VARCHAR2(1)    Y                        
SO_TRANSACTIONS_FLAG           VARCHAR2(1)    Y                        
MTL_TRANSACTIONS_ENABLED_FLAG  VARCHAR2(1)    Y                        
STOCK_ENABLED_FLAG             VARCHAR2(1)    Y                        
BOM_ENABLED_FLAG               VARCHAR2(1)    Y                        
BUILD_IN_WIP_FLAG              VARCHAR2(1)    Y                        
REVISION_QTY_CONTROL_CODE      NUMBER         Y                        
ITEM_CATALOG_GROUP_ID          NUMBER         Y                        
CATALOG_STATUS_FLAG            VARCHAR2(1)    Y                        
RETURNABLE_FLAG                VARCHAR2(1)    Y                        
DEFAULT_SHIPPING_ORG           NUMBER         Y                        
COLLATERAL_FLAG                VARCHAR2(1)    Y                        
TAXABLE_FLAG                   VARCHAR2(1)    Y                        
QTY_RCV_EXCEPTION_CODE         VARCHAR2(25)   Y                        
ALLOW_ITEM_DESC_UPDATE_FLAG    VARCHAR2(1)    Y                        
INSPECTION_REQUIRED_FLAG       VARCHAR2(1)    Y                        
RECEIPT_REQUIRED_FLAG          VARCHAR2(1)    Y                        
MARKET_PRICE                   NUMBER         Y                        
HAZARD_CLASS_ID                NUMBER         Y                        
RFQ_REQUIRED_FLAG              VARCHAR2(1)    Y                        
QTY_RCV_TOLERANCE              NUMBER         Y                        
LIST_PRICE_PER_UNIT            NUMBER         Y                        
UN_NUMBER_ID                   NUMBER         Y                        
PRICE_TOLERANCE_PERCENT        NUMBER         Y                        
ASSET_CATEGORY_ID              NUMBER         Y                        
ROUNDING_FACTOR                NUMBER         Y                        
UNIT_OF_ISSUE                  VARCHAR2(25)   Y                        
ENFORCE_SHIP_TO_LOCATION_CODE  VARCHAR2(25)   Y                        
ALLOW_SUBSTITUTE_RECEIPTS_FLAG VARCHAR2(1)    Y                        
ALLOW_UNORDERED_RECEIPTS_FLAG  VARCHAR2(1)    Y                        
ALLOW_EXPRESS_DELIVERY_FLAG    VARCHAR2(1)    Y                        
DAYS_EARLY_RECEIPT_ALLOWED     NUMBER         Y                        
DAYS_LATE_RECEIPT_ALLOWED      NUMBER         Y                        
RECEIPT_DAYS_EXCEPTION_CODE    VARCHAR2(25)   Y                        
RECEIVING_ROUTING_ID           NUMBER         Y                        
INVOICE_CLOSE_TOLERANCE        NUMBER         Y                        
RECEIVE_CLOSE_TOLERANCE        NUMBER         Y                        
AUTO_LOT_ALPHA_PREFIX          VARCHAR2(30)   Y                        
START_AUTO_LOT_NUMBER          VARCHAR2(30)   Y                        
LOT_CONTROL_CODE               NUMBER         Y                        
SHELF_LIFE_CODE                NUMBER         Y                        
SHELF_LIFE_DAYS                NUMBER         Y                        
SERIAL_NUMBER_CONTROL_CODE     NUMBER         Y                        
START_AUTO_SERIAL_NUMBER       VARCHAR2(30)   Y                        
AUTO_SERIAL_ALPHA_PREFIX       VARCHAR2(30)   Y                        
SOURCE_TYPE                    NUMBER         Y                        
SOURCE_ORGANIZATION_ID         NUMBER         Y                        
SOURCE_SUBINVENTORY            VARCHAR2(10)   Y                        
EXPENSE_ACCOUNT                NUMBER         Y                        
ENCUMBRANCE_ACCOUNT            NUMBER         Y                        
RESTRICT_SUBINVENTORIES_CODE   NUMBER         Y                        
UNIT_WEIGHT                    NUMBER         Y                        
WEIGHT_UOM_CODE                VARCHAR2(3)    Y                        
VOLUME_UOM_CODE                VARCHAR2(3)    Y                        
UNIT_VOLUME                    NUMBER         Y                        
RESTRICT_LOCATORS_CODE         NUMBER         Y                        
LOCATION_CONTROL_CODE          NUMBER         Y                        
SHRINKAGE_RATE                 NUMBER         Y                        
ACCEPTABLE_EARLY_DAYS          NUMBER         Y                        
PLANNING_TIME_FENCE_CODE       NUMBER         Y                        
DEMAND_TIME_FENCE_CODE         NUMBER         Y                        
LEAD_TIME_LOT_SIZE             NUMBER         Y                        
STD_LOT_SIZE                   NUMBER         Y                        
CUM_MANUFACTURING_LEAD_TIME    NUMBER         Y                        
OVERRUN_PERCENTAGE             NUMBER         Y                        
MRP_CALCULATE_ATP_FLAG         VARCHAR2(1)    Y                        
ACCEPTABLE_RATE_INCREASE       NUMBER         Y                        
ACCEPTABLE_RATE_DECREASE       NUMBER         Y                        
CUMULATIVE_TOTAL_LEAD_TIME     NUMBER         Y                        
PLANNING_TIME_FENCE_DAYS       NUMBER         Y                        
DEMAND_TIME_FENCE_DAYS         NUMBER         Y                        
END_ASSEMBLY_PEGGING_FLAG      VARCHAR2(1)    Y                        
REPETITIVE_PLANNING_FLAG       VARCHAR2(1)    Y                        
PLANNING_EXCEPTION_SET         VARCHAR2(10)   Y                        
BOM_ITEM_TYPE                  NUMBER         Y                        
PICK_COMPONENTS_FLAG           VARCHAR2(1)    Y                        
REPLENISH_TO_ORDER_FLAG        VARCHAR2(1)    Y                        
BASE_ITEM_ID                   NUMBER         Y                        
ATP_COMPONENTS_FLAG            VARCHAR2(1)    Y                        
ATP_FLAG                       VARCHAR2(1)    Y                        
FIXED_LEAD_TIME                NUMBER         Y                        
VARIABLE_LEAD_TIME             NUMBER         Y                        
WIP_SUPPLY_LOCATOR_ID          NUMBER         Y                        
WIP_SUPPLY_TYPE                NUMBER         Y                        
WIP_SUPPLY_SUBINVENTORY        VARCHAR2(10)   Y                        
PRIMARY_UOM_CODE               VARCHAR2(3)    Y                        
PRIMARY_UNIT_OF_MEASURE        VARCHAR2(25)   Y                        
ALLOWED_UNITS_LOOKUP_CODE      NUMBER         Y                        
COST_OF_SALES_ACCOUNT          NUMBER         Y                        
SALES_ACCOUNT                  NUMBER         Y                        
DEFAULT_INCLUDE_IN_ROLLUP_FLAG VARCHAR2(1)    Y                        
INVENTORY_ITEM_STATUS_CODE     VARCHAR2(10)   Y                        
INVENTORY_PLANNING_CODE        NUMBER         Y                        
PLANNER_CODE                   VARCHAR2(10)   Y                        
PLANNING_MAKE_BUY_CODE         NUMBER         Y                        
FIXED_LOT_MULTIPLIER           NUMBER         Y                        
ROUNDING_CONTROL_TYPE          NUMBER         Y                        
CARRYING_COST                  NUMBER         Y                        
POSTPROCESSING_LEAD_TIME       NUMBER         Y                        
PREPROCESSING_LEAD_TIME        NUMBER         Y                        
FULL_LEAD_TIME                 NUMBER         Y                        
ORDER_COST                     NUMBER         Y                        
MRP_SAFETY_STOCK_PERCENT       NUMBER         Y                        
MRP_SAFETY_STOCK_CODE          NUMBER         Y                        
MIN_MINMAX_QUANTITY            NUMBER         Y                        
MAX_MINMAX_QUANTITY            NUMBER         Y                        
MINIMUM_ORDER_QUANTITY         NUMBER         Y                        
FIXED_ORDER_QUANTITY           NUMBER         Y                        
FIXED_DAYS_SUPPLY              NUMBER         Y                        
MAXIMUM_ORDER_QUANTITY         NUMBER         Y                        
ATP_RULE_ID                    NUMBER         Y                        
PICKING_RULE_ID                NUMBER         Y                        
RESERVABLE_TYPE                NUMBER         Y                        
POSITIVE_MEASUREMENT_ERROR     NUMBER         Y                        
NEGATIVE_MEASUREMENT_ERROR     NUMBER         Y                        
ENGINEERING_ECN_CODE           VARCHAR2(50)   Y                        
ENGINEERING_ITEM_ID            NUMBER         Y                        
ENGINEERING_DATE               DATE           Y                        
SERVICE_STARTING_DELAY         NUMBER         Y                        
VENDOR_WARRANTY_FLAG           VARCHAR2(1)    Y                        
SERVICEABLE_COMPONENT_FLAG     VARCHAR2(1)    Y                        
SERVICEABLE_PRODUCT_FLAG       VARCHAR2(1)    Y                        
BASE_WARRANTY_SERVICE_ID       NUMBER         Y                        
PAYMENT_TERMS_ID               NUMBER         Y                        
PREVENTIVE_MAINTENANCE_FLAG    VARCHAR2(1)    Y                        
PRIMARY_SPECIALIST_ID          NUMBER         Y                        
SECONDARY_SPECIALIST_ID        NUMBER         Y                        
SERVICEABLE_ITEM_CLASS_ID      NUMBER         Y                        
TIME_BILLABLE_FLAG             VARCHAR2(1)    Y                        
MATERIAL_BILLABLE_FLAG         VARCHAR2(30)   Y                        
EXPENSE_BILLABLE_FLAG          VARCHAR2(1)    Y                        
PRORATE_SERVICE_FLAG           VARCHAR2(1)    Y                        
COVERAGE_SCHEDULE_ID           NUMBER         Y                        
SERVICE_DURATION_PERIOD_CODE   VARCHAR2(10)   Y                        
SERVICE_DURATION               NUMBER         Y                        
WARRANTY_VENDOR_ID             NUMBER         Y                        
MAX_WARRANTY_AMOUNT            NUMBER         Y                        
RESPONSE_TIME_PERIOD_CODE      VARCHAR2(30)   Y                        
RESPONSE_TIME_VALUE            NUMBER         Y                        
NEW_REVISION_CODE              VARCHAR2(30)   Y                        
INVOICEABLE_ITEM_FLAG          VARCHAR2(1)    Y                        
TAX_CODE                       VARCHAR2(50)   Y                        
INVOICE_ENABLED_FLAG           VARCHAR2(1)    Y                        
MUST_USE_APPROVED_VENDOR_FLAG  VARCHAR2(1)    Y                        
REQUEST_ID                     NUMBER         Y                        
PROGRAM_APPLICATION_ID         NUMBER         Y                        
PROGRAM_ID                     NUMBER         Y                        
PROGRAM_UPDATE_DATE            DATE           Y                        
OUTSIDE_OPERATION_FLAG         VARCHAR2(1)    Y                        
OUTSIDE_OPERATION_UOM_TYPE     VARCHAR2(25)   Y                        
SAFETY_STOCK_BUCKET_DAYS       NUMBER         Y                        
AUTO_REDUCE_MPS                NUMBER(22)     Y                        
COSTING_ENABLED_FLAG           VARCHAR2(1)    Y                        
CYCLE_COUNT_ENABLED_FLAG       VARCHAR2(1)    Y                        
DEMAND_SOURCE_LINE             VARCHAR2(30)   Y                        
COPY_ITEM_ID                   NUMBER         Y                        
SET_ID                         VARCHAR2(10)   Y                        
REVISION                       VARCHAR2(3)    Y                        
AUTO_CREATED_CONFIG_FLAG       VARCHAR2(1)    Y                        
ITEM_TYPE                      VARCHAR2(30)   Y                        
MODEL_CONFIG_CLAUSE_NAME       VARCHAR2(10)   Y                        
SHIP_MODEL_COMPLETE_FLAG       VARCHAR2(1)    Y                        
MRP_PLANNING_CODE              NUMBER         Y                        
RETURN_INSPECTION_REQUIREMENT  NUMBER         Y                        
DEMAND_SOURCE_TYPE             NUMBER         Y                        
DEMAND_SOURCE_HEADER_ID        NUMBER         Y                        
TRANSACTION_ID                 NUMBER         Y                        
PROCESS_FLAG                   NUMBER         Y                        
ORGANIZATION_CODE              VARCHAR2(3)    Y                        
ITEM_NUMBER                    VARCHAR2(700)  Y                        
COPY_ITEM_NUMBER               VARCHAR2(81)   Y                        
TEMPLATE_ID                    NUMBER         Y                        
TEMPLATE_NAME                  VARCHAR2(30)   Y                        
COPY_ORGANIZATION_ID           NUMBER         Y                        
COPY_ORGANIZATION_CODE         VARCHAR2(3)    Y                        
ATO_FORECAST_CONTROL           NUMBER         Y                        
TRANSACTION_TYPE               VARCHAR2(10)   Y                        
MATERIAL_COST                  NUMBER         Y                        
MATERIAL_SUB_ELEM              VARCHAR2(10)   Y                        
MATERIAL_OH_RATE               NUMBER         Y                        
MATERIAL_OH_SUB_ELEM           VARCHAR2(10)   Y                        
MATERIAL_SUB_ELEM_ID           NUMBER         Y                        
MATERIAL_OH_SUB_ELEM_ID        NUMBER         Y                        
AUTO_REL_TIME_FENCE_CODE       NUMBER         Y                        
AUTO_REL_TIME_FENCE_DAYS       NUMBER         Y                        
CONTAINER_ITEM_FLAG            VARCHAR2(1)    Y                        
VEHICLE_ITEM_FLAG              VARCHAR2(1)    Y                        
MAXIMUM_LOAD_WEIGHT            NUMBER         Y                        
MINIMUM_FILL_PERCENT           NUMBER         Y                        
CONTAINER_TYPE_CODE            VARCHAR2(30)   Y                        
INTERNAL_VOLUME                NUMBER         Y                        
SET_PROCESS_ID                 NUMBER                  0               
CHECK_SHORTAGES_FLAG           VARCHAR2(1)    Y                        
RELEASE_TIME_FENCE_CODE        NUMBER         Y                        
RELEASE_TIME_FENCE_DAYS        NUMBER         Y                        
WH_UPDATE_DATE                 DATE           Y                        
PRODUCT_FAMILY_ITEM_ID         NUMBER         Y                        
PURCHASING_TAX_CODE            VARCHAR2(50)   Y                        
OVERCOMPLETION_TOLERANCE_TYPE  NUMBER         Y                        
OVERCOMPLETION_TOLERANCE_VALUE NUMBER         Y                        
EFFECTIVITY_CONTROL            NUMBER         Y                        
GLOBAL_ATTRIBUTE_CATEGORY      VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE1              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE2              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE3              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE4              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE5              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE6              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE7              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE8              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE9              VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE10             VARCHAR2(150)  Y                        
OVER_SHIPMENT_TOLERANCE        NUMBER         Y                        
UNDER_SHIPMENT_TOLERANCE       NUMBER         Y                        
OVER_RETURN_TOLERANCE          NUMBER         Y                        
UNDER_RETURN_TOLERANCE         NUMBER         Y                        
EQUIPMENT_TYPE                 NUMBER         Y                        
RECOVERED_PART_DISP_CODE       VARCHAR2(30)   Y                        
DEFECT_TRACKING_ON_FLAG        VARCHAR2(1)    Y                        
USAGE_ITEM_FLAG                VARCHAR2(1)    Y                        
EVENT_FLAG                     VARCHAR2(1)    Y                        
ELECTRONIC_FLAG                VARCHAR2(1)    Y                        
DOWNLOADABLE_FLAG              VARCHAR2(1)    Y                        
VOL_DISCOUNT_EXEMPT_FLAG       VARCHAR2(1)    Y                        
COUPON_EXEMPT_FLAG             VARCHAR2(1)    Y                        
COMMS_NL_TRACKABLE_FLAG        VARCHAR2(1)    Y                        
ASSET_CREATION_CODE            VARCHAR2(30)   Y                        
COMMS_ACTIVATION_REQD_FLAG     VARCHAR2(1)    Y                        
ORDERABLE_ON_WEB_FLAG          VARCHAR2(1)    Y                        
BACK_ORDERABLE_FLAG            VARCHAR2(1)    Y                        
WEB_STATUS                     VARCHAR2(30)   Y                        
INDIVISIBLE_FLAG               VARCHAR2(1)    Y                        
LONG_DESCRIPTION               VARCHAR2(4000) Y                        
DIMENSION_UOM_CODE             VARCHAR2(3)    Y                        
UNIT_LENGTH                    NUMBER         Y                        
UNIT_WIDTH                     NUMBER         Y                        
UNIT_HEIGHT                    NUMBER         Y                        
BULK_PICKED_FLAG               VARCHAR2(1)    Y                        
LOT_STATUS_ENABLED             VARCHAR2(1)    Y                        
DEFAULT_LOT_STATUS_ID          NUMBER         Y                        
SERIAL_STATUS_ENABLED          VARCHAR2(1)    Y                        
DEFAULT_SERIAL_STATUS_ID       NUMBER         Y                        
LOT_SPLIT_ENABLED              VARCHAR2(1)    Y                        
LOT_MERGE_ENABLED              VARCHAR2(1)    Y                        
INVENTORY_CARRY_PENALTY        NUMBER         Y                        
OPERATION_SLACK_PENALTY        NUMBER         Y                        
FINANCING_ALLOWED_FLAG         VARCHAR2(1)    Y                        
EAM_ITEM_TYPE                  NUMBER         Y                        
EAM_ACTIVITY_TYPE_CODE         VARCHAR2(30)   Y                        
EAM_ACTIVITY_CAUSE_CODE        VARCHAR2(30)   Y                        
EAM_ACT_NOTIFICATION_FLAG      VARCHAR2(1)    Y                        
EAM_ACT_SHUTDOWN_STATUS        VARCHAR2(30)   Y                        
DUAL_UOM_CONTROL               NUMBER         Y                        
SECONDARY_UOM_CODE             VARCHAR2(3)    Y                        
DUAL_UOM_DEVIATION_HIGH        NUMBER         Y                        
DUAL_UOM_DEVIATION_LOW         NUMBER         Y                        
CONTRACT_ITEM_TYPE_CODE        VARCHAR2(30)   Y                        
SUBSCRIPTION_DEPEND_FLAG       VARCHAR2(1)    Y                        
SERV_REQ_ENABLED_CODE          VARCHAR2(30)   Y                        
SERV_BILLING_ENABLED_FLAG      VARCHAR2(1)    Y                        
SERV_IMPORTANCE_LEVEL          NUMBER         Y                        
PLANNED_INV_POINT_FLAG         VARCHAR2(1)    Y                        
LOT_TRANSLATE_ENABLED          VARCHAR2(1)    Y                        
DEFAULT_SO_SOURCE_TYPE         VARCHAR2(30)   Y                        
CREATE_SUPPLY_FLAG             VARCHAR2(1)    Y                        
SUBSTITUTION_WINDOW_CODE       NUMBER         Y                        
SUBSTITUTION_WINDOW_DAYS       NUMBER         Y                        
IB_ITEM_INSTANCE_CLASS         VARCHAR2(30)   Y                        
CONFIG_MODEL_TYPE              VARCHAR2(30)   Y                        
LOT_SUBSTITUTION_ENABLED       VARCHAR2(1)    Y                        
MINIMUM_LICENSE_QUANTITY       NUMBER         Y                        
EAM_ACTIVITY_SOURCE_CODE       VARCHAR2(30)   Y                        
LIFECYCLE_ID                   NUMBER         Y                        
CURRENT_PHASE_ID               NUMBER         Y                        
TRACKING_QUANTITY_IND          VARCHAR2(30)   Y                        
ONT_PRICING_QTY_SOURCE         VARCHAR2(30)   Y                        
SECONDARY_DEFAULT_IND          VARCHAR2(30)   Y                        
VMI_MINIMUM_UNITS              NUMBER         Y                        
VMI_MINIMUM_DAYS               NUMBER         Y                        
VMI_MAXIMUM_UNITS              NUMBER         Y                        
VMI_MAXIMUM_DAYS               NUMBER         Y                        
VMI_FIXED_ORDER_QUANTITY       NUMBER         Y                        
SO_AUTHORIZATION_FLAG          NUMBER         Y                        
CONSIGNED_FLAG                 NUMBER         Y                        
ASN_AUTOEXPIRE_FLAG            NUMBER         Y                        
VMI_FORECAST_TYPE              NUMBER         Y                        
FORECAST_HORIZON               NUMBER         Y                        
EXCLUDE_FROM_BUDGET_FLAG       NUMBER         Y                        
DAYS_TGT_INV_SUPPLY            NUMBER         Y                        
DAYS_TGT_INV_WINDOW            NUMBER         Y                        
DAYS_MAX_INV_SUPPLY            NUMBER         Y                        
DAYS_MAX_INV_WINDOW            NUMBER         Y                        
DRP_PLANNED_FLAG               NUMBER         Y                        
CRITICAL_COMPONENT_FLAG        NUMBER         Y                        
CONTINOUS_TRANSFER             NUMBER         Y                        
CONVERGENCE                    NUMBER         Y                        
DIVERGENCE                     NUMBER         Y                        
CONFIG_ORGS                    VARCHAR2(30)   Y                        
CONFIG_MATCH                   VARCHAR2(30)   Y                        
ATTRIBUTE16                    VARCHAR2(240)  Y                        
ATTRIBUTE17                    VARCHAR2(240)  Y                        
ATTRIBUTE18                    VARCHAR2(240)  Y                        
ATTRIBUTE19                    VARCHAR2(240)  Y                        
ATTRIBUTE20                    VARCHAR2(240)  Y                        
ATTRIBUTE21                    VARCHAR2(240)  Y                        
ATTRIBUTE22                    VARCHAR2(240)  Y                        
ATTRIBUTE23                    VARCHAR2(240)  Y                        
ATTRIBUTE24                    VARCHAR2(240)  Y                        
ATTRIBUTE25                    VARCHAR2(240)  Y                        
ATTRIBUTE26                    VARCHAR2(240)  Y                        
ATTRIBUTE27                    VARCHAR2(240)  Y                        
ATTRIBUTE28                    VARCHAR2(240)  Y                        
ATTRIBUTE29                    VARCHAR2(240)  Y                        
ATTRIBUTE30                    VARCHAR2(240)  Y                        
CAS_NUMBER                     VARCHAR2(30)   Y                        
CHILD_LOT_FLAG                 VARCHAR2(1)    Y                        
CHILD_LOT_PREFIX               VARCHAR2(30)   Y                        
CHILD_LOT_STARTING_NUMBER      NUMBER         Y                        
CHILD_LOT_VALIDATION_FLAG      VARCHAR2(1)    Y                        
COPY_LOT_ATTRIBUTE_FLAG        VARCHAR2(1)    Y                        
DEFAULT_GRADE                  VARCHAR2(150)  Y                        
EXPIRATION_ACTION_CODE         VARCHAR2(32)   Y                        
EXPIRATION_ACTION_INTERVAL     NUMBER         Y                        
GRADE_CONTROL_FLAG             VARCHAR2(1)    Y                        
HAZARDOUS_MATERIAL_FLAG        VARCHAR2(1)    Y                        
HOLD_DAYS                      NUMBER         Y                        
LOT_DIVISIBLE_FLAG             VARCHAR2(1)    Y                        
MATURITY_DAYS                  NUMBER         Y                        
PARENT_CHILD_GENERATION_FLAG   VARCHAR2(1)    Y                        
PROCESS_COSTING_ENABLED_FLAG   VARCHAR2(1)    Y                        
PROCESS_EXECUTION_ENABLED_FLAG VARCHAR2(1)    Y                        
PROCESS_QUALITY_ENABLED_FLAG   VARCHAR2(1)    Y                        
PROCESS_SUPPLY_LOCATOR_ID      NUMBER         Y                        
PROCESS_SUPPLY_SUBINVENTORY    VARCHAR2(10)   Y                        
PROCESS_YIELD_LOCATOR_ID       NUMBER         Y                        
PROCESS_YIELD_SUBINVENTORY     VARCHAR2(10)   Y                        
RECIPE_ENABLED_FLAG            VARCHAR2(1)    Y                        
RETEST_INTERVAL                NUMBER         Y                        
CHARGE_PERIODICITY_CODE        VARCHAR2(3)    Y                        
REPAIR_LEADTIME                NUMBER         Y                        
REPAIR_YIELD                   NUMBER         Y                        
PREPOSITION_POINT              VARCHAR2(1)    Y                        
REPAIR_PROGRAM                 NUMBER         Y                        
SUBCONTRACTING_COMPONENT       NUMBER         Y                        
OUTSOURCED_ASSEMBLY            NUMBER         Y                        
SOURCE_SYSTEM_ID               NUMBER         Y                        
SOURCE_SYSTEM_REFERENCE        VARCHAR2(255)  Y                        
SOURCE_SYSTEM_REFERENCE_DESC   VARCHAR2(240)  Y                        
GLOBAL_TRADE_ITEM_NUMBER       VARCHAR2(14)   Y                        
CONFIRM_STATUS                 VARCHAR2(3)    Y                        
CHANGE_ID                      NUMBER         Y                        
CHANGE_LINE_ID                 NUMBER         Y                        
ITEM_CATALOG_GROUP_NAME        VARCHAR2(820)  Y                        
REVISION_IMPORT_POLICY         VARCHAR2(30)   Y                        
GTIN_DESCRIPTION               VARCHAR2(240)  Y                        
INTERFACE_TABLE_UNIQUE_ID      NUMBER         Y                        
GDSN_OUTBOUND_ENABLED_FLAG     VARCHAR2(1)    Y                        
TRADE_ITEM_DESCRIPTOR          VARCHAR2(35)   Y                        
STYLE_ITEM_ID                  NUMBER         Y                        
STYLE_ITEM_FLAG                VARCHAR2(1)    Y                        
STYLE_ITEM_NUMBER              VARCHAR2(700)  Y                        
COPY_REVISION_ID               NUMBER         Y                        
BUNDLE_ID                      NUMBER         Y                        
MESSAGE_TIMESTAMP              DATE           Y                        
MESSAGE_ID                     NUMBER         Y                        
OPERATION                      VARCHAR2(80)   Y                        
TOP_ITEM_FLAG                  VARCHAR2(1)    Y                        
GPC_CODE                       VARCHAR2(8)    Y                        
GLOBAL_ATTRIBUTE11             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE12             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE13             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE14             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE15             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE16             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE17             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE18             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE19             VARCHAR2(150)  Y                        
GLOBAL_ATTRIBUTE20             VARCHAR2(150)  Y