Modifying the ENOVIAvpm Database

The different tasks below show you how to set up the ENOVIAvpm connector.

The first two tasks are MANDATORY.

This task shows you how to:

Add the C_ORDER Attribute

For the Content and Simulation quadrant of the Compass to work correctly, the C_ORDER attribute must be added to the PART_LIST, CATIA_MODEL, DOCUMENT tables, etc. i.e. all the representations declared in the xml mapping file.

  1. For VPM 1.6 users: Find the script VPMNewRevVer.clp (for DB2) or VPMNewRevVer.sql (for Oracle) in: $CATIA/vpm/reffiles/DBMS/ddl.
    For VPM 1.8 users: Find the script VPM_VPMNewRevVer.clp (for DB2) or VPM_VPMNewRevVer.sql (for Oracle) in: $CATIA/reffiles/DBMS/ddl.
  2. Edit the script replacing all occurrences of CDAENV with the name of your VPM environment(s).
  3. For VPM 1.6 users: Run one of the following commands:
    for DB2:
    db2 -tvf VPMNewRevVer.clp

    for Oracle:

    SQL>@/tmp/VPMNewRevVer.sql

    This creates the C_ORDER column in the database.

  4. For VPM 1.8 users: Run one of the following commands:
    for DB2:
    db2 -tvf VPM_VPMNewRevVer.clp

    for Oracle:

    SQL>@/tmp/VPM_VPMNewRevVer.sql

    This creates the C_ORDER column in the database.

  5. To migrate to the versioning mechanism, log on as VPM administrator and, for each environment, run one of the following commands:
    for DB2:
    VPMMigrateRevVer -u db2adm8 -p db2adm8 VPMENV.PART_LIST VPMENV.CATIA_MODEL VPMENV.DOCUMENT

    where VPMENV is the environment. For more than one environment, use the command shown below:

    VPMMigrateRevVer -u db2adm8 -p db2adm8 MYENV1.PART_LIST MYENV1.CATIA_MODEL MYENV1.DOCUMENT MYENV1.MYDOC11 MYENV1.MYDOC12 
    VPMMigrateRevVer -u db2adm8 -p db2adm8 MYENV2.PART_LIST MYENV2.CATIA_MODEL MYENV2.DOCUMENT MYENV2.MYDOC21 MYENV2.MYDOC22

    for Oracle:

    VPMMigrateRevVer -u system -p manager VPMENV.PART_LIST VPMENV.CATIA_MODEL VPMENV.DOCUMENT
  6. Recompute the PSN library by running the command:

    catpsninst.sh PSN.in
    for ENOVIAvpm 1.6

    catpsninst.sh PSN.in –u user –p passwd
    for ENOVIAvpm 1.8 and higher

    where PSN.in is the same one as before.

    This creates a new libLV0XCDMA.a library.

  7. Copy the libLV0XCDMA.a library to:

    $CAT_CUST/code/steplib//$OS

    where $OS is your operating system.

More About C_ORDER

Parts are versioned but documents / models are revisioned.

C_ORDER is a database attribute that allows VPM to compute the "in work" version more quickly.

This information is also used by Coexistence in order to share the policy between ENOVIAvpm and 3DEXPERIENCE.

The C_ORDER is directly used by Coexistence on Parts in order to compute the policy on the 3DEXPERIENCE side.

On documents, a computation is done based on the revision policy in order to compute the 3DEXPERIENCE policy.

It is possible to customize this mechanism using:

  • catcdma.PROVIDERV4.FORCE_ORDER_COMPUTATION: The policy on Parts is no longer based on the C_ORDER attribute but as a document on the policy.
  • catcdma. PROVIDERV4.DB_ORDER_COMPUTATION: The computation is no longer based on the ENOVIAvpm policy but on the list of versions / revisions in the database.

Modify the Profile

The following steps are to be performed if you create your own profile. If you want to use the standard profile provided, be aware that these steps have already been done for you and are included in the provided sample.

Important:
  • You are strongly advised to create a specific profile for 3DEXPERIENCE navigation.
  • A standard profile for the VPMENV environment containing the minimum declaration requirements for 3DEXPERIENCE operation is provided in the following location on the VPM server side:

    $CATIA/vpm/reffiles/3DLive/3DLIVE_profile

  • Bear in mind that for an attribute to be eligible for mapping it has to be declared in at least one mask in the profile.

  1. Place all the S_* attributes of the PART_LIST table in the PSN mask:
    ASSIGN 'SELECT S_PART_NUMBER, PART_DESCRIPTION, C_PART_VERSION , S_CHG_NUM, S_TYPE FROM PART_LIST' TO "GLOBAL_$GRAPH_NAVIG";;
               
  2. You must also:
    • map V_user with C_RESPONSIBLE for each representation and each Part declared in the XML mapping file (see Map ENOVIAvpm Objects onto 3DEXPERIENCE).
    • place the C_RESPONSIBLE attribute (i.e. what is mapped before V_user in the XML mapping file) in:
      • GLOBAL_$QUERY_PART
      • GLOBAL_$QUERY_DOCUMENT
      • GLOBAL_$QUERY_MODEL
      • GLOBAL_$QUERY_FEAT_NAV_REP
      (all the representations and PART_LIST tables declared in the XML mapping file)

    This modifies the profile for Collaboration.

  3. Place the C_PART_VERSION attribute (i.e. what is mapped before V_version in the XML mapping file) in:
    • GLOBAL_$RESULT_PART
    • GLOBAL_$RESULT_DOCUMENT
    • GLOBAL_$RESULT_MODEL

    This modifies the profile for the Version column in the Properties dialog box and the query result list.

  4. Place the C_LASTMOD attribute in:
    • GLOBAL_$RESULT_PART
    • GLOBAL_$RESULT_DOCUMENT
    • GLOBAL_$RESULT_MODEL
    Important:
    • Do not, under any circumstances, create the entry GLOBAL_$RESULT_FEAT_NAV_REP .
    • Make sure the GLOBAL_$GRAPH_NAVIG variable does not contain any references to the DOC_CONTAINER table.

Improve Performance

To improve performance when launching queries from 3DEXPERIENCE, you are strongly advised to deploy the V6_ID table on each environment used by 3DEXPERIENCE. The V6_ID table stores the IDs returned to 3DEXPERIENCE and gradually fills up.

To deploy this table, you must use the dbcdmb command with the file V6_ID in reffiles/3DLive.

  1. Make sure that the following scripts are up-to-date:
    • VPPARCUS

    • VPPARPRO

  2. Run the command streams.

    Examples:

    • for DB2 with the db2adm8 instance:
      dbcdmb V6_ID -u db2adm8 -p db2adm8
    • for ORACLE with the VPMENV environment:
      dbcdmb V6_ID -u system -p manager
      (create)
      dbcdmb V6_ID -u system -p manager
      (grant)

    The V6_ID table is created.

Compress Server/Client Messages

For improved response times, you can optionally activate a mechanism for the compression of the internal messages exchanged between the server and the client.

  1. To do this, the administrator must add the following declarations to the CATCDMA.dcls file: :

    CATCDMA.PROVIDERV4.LOW_COMPRESS_SIZE : INTEGER ;
    CATCDMA.PROVIDERV4.LOW_COMPRESS_SIZE = 'size in bytes';
    CATCDMA.PROVIDERV4. MEDIUM_COMPRESS_SIZE: INTEGER ;
    CATCDMA.PROVIDERV4.MEDIUM_COMPRESS_SIZE = 'size in bytes';
    CATCDMA.PROVIDERV4. HIGH_COMPRESS_SIZE: INTEGER ;
    CATCDMA.PROVIDERV4.HIGH_COMPRESS_SIZE = 'size in bytes';

  2. The behavior of these variables can be illustrated by the following example:

    CATCDMA.PROVIDERV4.LOW_COMPRESS_SIZE : INTEGER ;
    CATCDMA.PROVIDERV4.LOW_COMPRESS_SIZE=2000;
    CATCDMA.PROVIDERV4. MEDIUM_COMPRESS_SIZE: INTEGER ;
    CATCDMA.PROVIDERV4.MEDIUM_COMPRESS_SIZE=12000 ;
    CATCDMA.PROVIDERV4. HIGH_COMPRESS_SIZE: INTEGER ;
    CATCDMA.PROVIDERV4.HIGH_COMPRESS_SIZE=120000

    These variables are used to determine:
    • the minimum size in bytes from which the server or 3DEXPERIENCE will begin to compress the messages
    • the intermediate size where compression is greater
    • the size from which the messages will have the greatest compression.