Customizing OnePart

You need to customize OnePart configuration and publish the universe you want to study before using Procurement Intelligence.

This task shows you how to:

Check CSV File Structure

Check the structure of the .csv file containing the purchase orders before configuring OnePart.

The fields indicated below are mandatory:

  • PO Document (purchase order ID)
  • PO Date (purchase order date)
  • Part Number
  • Vendor Number

Configure Clusters

To be able to synchronize parts and clusters from OnePart with the purchase orders, all clusters from the procurement universe must be published automatically in OnePart.

  1. In the data model, add a dynamic field named reducegrouping to the 3d_shape class.

  2. In the mashup feed, add a meta value named clusterreduce to the /cluster page.

    It creates a new Force Publish All button in OnePart that you will use to test the configuration.

Add Property and Configure Consolidation

You must add a property named part_key to the class document. It identifies how the part is managed in the purchase orders. Then you will need to configure the consolidation to link the purchase orders to the part_key property.

  1. Add the part_key property to the class document.

  2. Link the part_key property to purchase orders.

Extract Cost Drivers

To be able to study the price vs the potential cost drivers, cost drivers must be extracted from the .CSV file containing purchase orders. Some cost drivers are directly related to the buying (volume of ordered part, country of the supplier) while others are related to the part (size, weight, volume of the bounding box, material). For cost drivers related to the part, items must be added to the OnePartPAPIFilters connector.

In Connectors, add as many items as needed to the OnePartPAPIFilters connector.

Configure Universe Files

You must configure template universe files to modify the .publish files generated when publishing clusters to OnePart. In addition to the part_key property created previously, you will need to add all the potential cost drivers you want to display in the application (like volume, mass or density). Note that any attribute from OnePart can be used in Procurement Intelligence.

  1. Go to datadir\studio\templates\Categorization and Deduplication\pre_conditions.
  2. In create_parts_schemas, edit custom.properties.
  3. In storageSchemas, add the name of your meta and its type, separated by a colon (my_db_meta_name:TYPE).
    In the example below, we add volume, density, mass, and bb_diagonal: storageTableName=op_parts storageSchemas=url:STRING,shsignature:STRING,cluster_id:INTEGER,center_distance:REAL,uid:STRING,family:STRING,status:INTEGER,file_path:STRING,source:STRING,part_number:STRING,inertiabb_height:REAL,inertiabb_length:REAL,inertiabb_width:REAL,original_shape_cluster_id:INTEGER,published_cluster_id:INTEGER,prediction:STRING,part_key:STRING,volume:REAL,density:REAL,mass:REAL,bb_diagonal:REAL index=url
  4. In import_parts, edit custom.properties as follows:
    1. In storageSchemas, add the name of the metas you entered previously separated by a backslash and a colon (my_db_meta_name\:TYPE).
    2. In sq.addParameter.add_hit_meta, add the name of the meta stored in the index (class_my_db_meta_name).
    In our example: searchServerUrl=http\://localhost\:10310/search-api/search sq.setParameter.streaming=true sq.addParameter.add_hit_metas=metas sq.setParameter.synthesis=disabled mappings=uid\:item_reference sq.setParameter.timeout=0 sq.setParameter.use_logic_hit_metas=false maxPerLot=10000 storageSchemas=url\:STRING,shsignature\:STRING,cluster_id\:INTEGER,center_distance\:REAL,uid\:STRING,file_path\:STRING,source\:STRING,part_number\:STRING,inertiabb_height\:REAL,inertiabb_length\:REAL,inertiabb_width\:REAL,part_key\:STRING,volume\:REAL,density\:REAL,mass\:REAL,bb_diagonal\:REAL sq.addParameter.add_hit_meta=url,dynamic_field\:3d_shape_signatures\#\#name\:shsignature,document_item_reference,document_file_path,2d3d_part_number,3d_shape_inertiabb_height,3d_shape_inertiabb_length,3d_shape_inertiabb_width,document_part_key,3d_shape_volume,3d_shape_density,3d_shape_mass,3d_shape_bb_diagonal searchAPIVersion=V6R2014X storageTableName=op_parts
  5. Go back to datadir\studio\templates\Categorization and Deduplication\.
  6. Edit custom.properties as follows:
    1. In partAdditionnalFields, add the name of the metas you entered previously separated by a backslash and a colon (my_db_meta_name\:TYPE).
    2. In exportAdditionalFields, add again the name of the metas you entered previously separated by a backslash and a colon (my_db_meta_name\:TYPE).
    In our example: clusterAdditionalFields=ispublished\:INTEGER universeType=Categorization and Deduplication partAdditionalFields=original_cluster_id\:INTEGER,prediction\:STRING,part_key\:STRING,volume\:REAL,density\:REAL,mass\:REAL,bb_diagonal\:REAL clusterOntologyFields=family\:STRING exportAdditionalFields=part_key\:part_key,volume\:volume,density\:density,mass\:mass,bb_diagonal\:bb_diagonal searchServerUrl=http\://localhost\:10310/search-api/search

Test Your Configuration

You can now test your OnePart configuration. For more details on universe creation in OnePart, see Installation and Setup | Configure | Information Intelligence | OnePart | OnePart Reduce | Using OnePart Reduce | Use case - Standardization.

  1. Create the universe that you will use for Procurement Intelligence and name it procurement.
  2. On your cluster page, click Force Publish All.

  3. Check that the attribute reducegrouping_procurement is displayed in OnePart. You can also search for reducegrouping:reducegrouping_procurement in the Search bar.

  4. Go to datadir/studio/universes/procurement/publish.
  5. Open any .publish file and verify that cluster_id and part_key are displayed.
    In our example: {"cluster_id":"12","parts":[{"volume":"0.011844","density":"7.85","mass":"92.975113","id":"OU600590531.SLDPRT","part_key":"N031025941","bb_diagonal":"2.10580205","status":0},{"volume":"0.01154","density":"7.8499","mass":"90.587834","id":"OU600590478.SLDPRT","part_key":"N031025933","bb_diagonal":"2.10580205","status":0},{"volume":"0.011844","density":"7.85","mass":"92.975113","id":"OU600645183.SLDPRT","part_key":"N031039169","bb_diagonal":"2.10580205","status":0},{"volume":"0.012532","density":"7.85","mass":"98.375913","id":"OU600984318.SLDPRT","part_key":"N031103114","bb_diagonal":"2.12309624","status":0},{"volume":"0.012228","density":"7.8499","mass":"95.98868","id":"OU600984319.SLDPRT","part_key":"N031103178","bb_diagonal":"2.12309624","status":0}],"category":"FAKE","universe_name":"procurement","universe_type":"Categorization and Deduplication"}