Imports
Data import allows you to push data to PLM using CSV or Excel files. (Data import can also be done via beCPG REST API)
Use
Folders used to import data are available in the repository (Repository/Exchange/Import).
Folders used for import are :
- To treat : to import .csv files;
- Failed : error files;
- Succeeded : files importation succeeded;
- Log : import logs;
- To do : storage folder;
- User import : to import users.
It is possible to directly get the layouts by using directly the Excel exports generated in the interface, in the lists or with the bulk edit. beCPG also provides ready to use files in Excel or CSV formats which can be used to import data. To download these files, right click on the links below:
It is also possible to use csv format by saving files in CSV format and semi colon as separator (;)
Imports settings
Simple import
Import settings are the following
Import format is the following:
TYPE; bcpg:rawMaterial
PATH; /Exchange/Import/ImportToDo/rawMaterial
COLUMNS_PARAMS; @Key
COLUMNS; bcpg:erpCode; cm:name bcpg:legalName;
#; ERP code; Name Legal name;
VALUES; FR001; Orange; Orange;
VALUES; FR002; Apple; Apple;
VALUES; FR003; Water; Water;
Where:
- PATH: the folder where the data will be imported;
- TYPE: the type of object which has been created (raw material, nutrient ...);
- COLUMNS: names of the different attributes (properties and associations) to import;
VALUES: values to import in a specific format.
Date: DD/MM/AAAA as per the French system, YYYY/MM/DD as per the English system;
- User: user account ;
Decimal number: the decimal separator is a comma on a French system and a dot on an English system ;
COLUMNS_PARAMS: annotation allowing to specify type of columns and keys
Possible annotations:
All annotations respect this naming rule: @Name(attribute1="", attribute2="", attribute3="",...)
- Annotations start with a @ followed by the name
- Annotatons start with a capital letter
- Annotations have attributes
- Attribute names start with a lower case
- Attributes are separated with a comma
- Annotations have mandatory attributes and optionnal attributes
Example
@Key: To choose the identifier of the entity.
@Assoc: to identify the association.
key: the association key. (mandatory) path: to specify the search path. (optionnal) type: to spectify the target type. (optionnal)
@DataListKey: the key used in a list. (composition, packaging...).
@Hierarchy: the family/subfamily.
path: the path to the list of families in the administration. (optional in the case of product families) parentLevelColumn: the parent column is the family column. (only mandatory for subfamilies) parentLevelAttribute: the attribute which links the family to the subfamily, in general **bcpg:parentLevel**. (only mandatory for subfamilies)
- @File: to import files/images...
attribute: the name of the property which is used, "cm:content", "cm:title"... (mandatory) path: the destination file. (mandatory)
- @Attribute: import the attribute from properties of type d:nodeRef or association.
attribute: the name of the property. (optionnal) type: the type of the target. (mandatory) key: the key of the association. (cm:name if not indicated)
- @Charact: import the characteristics in column.
dataListQName: the name of the characteristic list. (Cost, Nutrient, Allergens..). (mandatory) charactQName: the property of the list where the characteristic is saved. (mandatory) charactKeyQName: the key to search the association. (mandatory) charactNodeRef: the id of the characteristic. (optional, if empty the system takes the charactKeyValue or charactName). (optional) charactKeyValue/charactName: the name of the imported characteristic. (optional, if empty the system takes the column title) charactKeyQName: the name of the property used to search the characteristic. (optional, if empty the sytem takes bcpg:charactName) dataListAttribute: the attribute to fill by the value of the column. (mandatory)
@Formula: use a SPEL formula in a column.
@MLText: import multilingual fields without adding the column by default.
It is necessary to add Il faut l'ajouter sur la première colonne de chaque propriété MLText seulement.
Nb.
the name of annotations is case-sensitive, you must respect names and attributes
We only use one annotation by cell
A column can have a key/assoc/MLtext at the same time. In that cas, you must use different COLUMNS_PARAM lines
Example:
Additional
in the case of @File (annotation corresponding to the path of the files which must be imported), you can use the following prefixs:
- file: - For the path of file in local
- classpath:
- url:
- http: - For a file on a website
- ftp: - For a file received with FTP protocol
reg: - Accompanied with header DOCS_BASE_PATH :
DOCS_BASE_PATH
To indicate in which folder the documents are saved with the use of reg
Nb. The extension of the file is kept during the import
IMPORT_TYPE
TO indicate the type of import to do :
- Node or absence of the line IMPORT_TYPE : we import an object (ex : RM, SF, FP, packaging,...)
- EntityListItem : to import a list associated to the entity (ex : compoList, ingList,...)
- Comments : to import a comment
In the case of an error during the import of a list, it is possible to import again. First, you must delete the list during the next import. To do that, you must add the following parameter.
DELETE_DATALIST true
This function is equivalent to a "CANCEL & REPLACE"
STOP_ON_FIRST_ERROR false
- Enable to continue the import in the case of an error on a line
DISABLED_POLICIES cm:auditable,rep:reportEntityAspect
- Disable policies during import (beCPG code generation or non respected constraints)
ENTITY_TYPE
- Enable to specify the entity during import. By default, bcpg:product is used.
User import
bePG allows the importation of a users pack and their association them to different groups and/or to different sites. Sites and non existing groups are created thanks to the import. The import is done with a .csv file which has to be placed in the repository folder « Exchange/Import/User import ». Once the import has been executed, the file is automatically moved to Exchange/Import/Import succeeded.
The .csv file must contain a header row:
"cm:lastName";"cm:firstName";"cm:email";"cm:telephone";"cm:organization";"username";"password";"memberships";"groups";"notify"
It’s possible to add other properties to a user by adding the properties’ names in header. « Username » and « Password » fields are mandatory.
The « Membership » field allows the association between users and sites. The user rôle in the site has to be defined. The different roles are :
- Consumer
- Collaborator
- Manager
Sites must be separated by « | » and roles with « _ ». Thus, the user « Test » belonging to :« Test site 1 » as « Manager » and « Test site 2 » as «Consumer» will have the « Membership » field filled as : « Test site 1_Manager|Test site 2_Consumer »
The « Groups » field allows the association between users and groups. Groups are separated by « | ». Groups can be hierarchized using a « / ». beCPG groups should be referenced by their system names:
- Marketing (Marketing)
- Marketing manager (MarketingMgr)
- Marketing user (MarketingUser)
- Purchaser (Purchasing)
- Purchase manager (PurchasingMgr)
- Purchase user (PurchasingUser)
- Quality manager (QualityMgr)
- Quality user (QualityUser)
- R&D (RD)
- R&D manager (RDMgr)
- R&D users (RDUser)
- Product reviewers (ProductReviewer)
- System manager (SystemMgr)
Thus, the user belonging to the « Product reviewer » group and to the « Test group 2 » group child of « Test group 1 » will have the « Groups » field filled like this: « ProductReviewer|Test group 1/Test group 2 »
The « notify » field allows to send email to the user. Possible values are « True » or « False ».
Complete CSV example for the Test user:
"cm:lastName";"cm:firstName";"cm:email";"cm:organization";"username";"password";"memberships";"groups";"notify"
"test";"test";"test@becpg.fr";"";"test";"test"; "Test site 1_Manager|Test site 2_Consumer";"ProductReviewer|Test group 1/Test group 2";"false"