Création articles (V10.12) (JSON)
L'action pour la création d’un article : integration_article
Ce service web permet de
Créer un nouvel article indicé (avec ou sans article modèle)
Créer un nouvel article non indicé (avec ou sans article modèle)
Déclarer un changement sur un article indicé, avec la création d’une demande de modification et un ordre de modification
Modifier un article
et ces actions sont possibles sur plusieurs articles grâce à un tableau d’articles à traiter, et avec application ou non d’un modèle
SOMMAIRE
- 1 Préambule : utilisation des modèles
- 2 Préambule : forcer l’indice de destination
- 3 Créer un nouvel article indicé
- 4 Créer plusieurs articles indicés
- 5 Déclarer un changement sur un article indicé
- 6 Créer un nouvel article non indicé
- 7 Modifier un article non indicé
- 8 Format de la réponse
- 9 Mapping de champs
Préambule : utilisation des modèles
L’utilisation d’un modèle article lors de la création est possible (aucun impact en modification), afin de dupliquer des sous-fiches de l’article modèle vers l’article créé.
Cette utilisation de modèle doit suivre certaines règles
L’article modèle peut être défini de manière explicite dans la balise JSON
MODELEREF
Il peut être défini de manière implicite d’après le type article dans la balise
ARTICLETYPECODE
La définition explicite est toujours prioritaire
Lorsqu’un modèle est défini l’ensemble des sous fiches modèles de l’article modèle est dupliqué
Pour un modèle implicite, le champ “cvafl” dans la table “T114” ( type article) doit être positionné à NON
Balise du corps (data) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
| 3 | Article modèle | NON | Définition explicite de l’article modèle |
| 3 | Type article | NON | Si le type article utilise un article modèle |
Exemple de corps pour utilisation de modèle (explicite par modèle ou implicite par type article)
"data":
{
"articletb": [{
"REFERENCE": "SF_PLM00402",
"DESIGNATION":"Rotor 402",
"ABBREVIATEDDESIGNATION":"ROTOR402",
"MODELEREF":"M_ROTOR"
} ,
{
"REFERENCE": "SF_PLM00403",
"DESIGNATION":"Rotor 403",
"ABBREVIATEDDESIGNATION":"ROTOR403",
"ARTICLETYPECODE":"T_ROTOR"
}]
}
Préambule : forcer l’indice de destination
La création ainsi que la demande de changement d’un article sous gestion d’indice car automatiquement traiter l’incrément de l’indice.
Cependant, il est possible de forcer l’indice de destination grâce à la balise ARTIND
En modification, si ARTIND
est fourni il devra être supérieur ou égale à l’indice article courant et il déclenchera un ODM tel que
Type changement = Mise à jour
Type évolution = article
Nouvelle référence + Nouvel Indice correspond à
ARTIND
Exemple de corps pour création article avec indice forcé
'data':
{
'articletb': [{
'REFERENCE': 'SF_PLM00608I',
'ARTICLETYPECODE':'INDICE',
'DESIGNATION':'Rotor',
'ABBREVIATEDDESIGNATION':'ROTOR',
'ARTIND':'F'
} ]
}
Exemple de corps pour demande de modification article avec indice forcé
"data":
{
"articletb": [{
"REFERENCE":"SF_PLM00608I",
"DDMFAMILY": "PLM2",
"DDMDATE":"15/03/2024",
"DDMUSER":"DEMO",
"ARTIND":"I",
"DESCRIPTION1" :"Evolution du produit"
} ]
}
Créer un nouvel article indicé
Cette action est déclenchée si la référence article renseigné dans le flux JSON n'existe pas dans l’ERP et le type article gère le cycle de vie article
Balise de paramètres (parameters) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
dos | 1 | Dossier achat-vente | NON | Par défaut selon utilisateur |
Balise du corps (data) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
articletb | 1 | Liste des articles | OUI |
|
[{champsArticle1},{champsArticle2}} | 2 | Chaque élément du tableau contient la liste des champs concernant chaque article | OUI |
|
{“nomChamp1Article1”:”valeur1”,”nomChamp2Article1”:valeur2”} | 3 | Liste des champs avec leur nom de champ et la valeur | OUI |
|
reference | 3 | Référence article | OUI |
|
articletypecode ou modeleref | 3 | type article ou choix du modèle | OUI | Voir chapitre préambule |
designation | 3 | désignation de l’article | OUI si type article sans modèle |
|
salesaccount | 3 | compte vente | OUI si type article sans modèle |
|
purchaseaccount | 3 | compte achat | OUI si type article sans modèle |
|
stockaccount | 3 | compte stock | OUI si type acticle sans modèle |
|
Si le champ article modèle dans la table “T114” (type article) est rempli , tous les champs seront initialisés à partir de ce modèle
Le contenu transporté par JSON remplace ou complète le contenu du modèle
Rappel : forcer l’indice destination avec la balise ARTIND en suivant les informations suivantes : Création articles (V10.12) (JSON) | Préambule : forcer l’indice de destination
Exemple de corps sans modèle
Exemple de corps avec modèle
Il faut que l’article modèle soit renseigné dans la table “T114” (type article)
Exemple complet flux JSON
Exemple complet flux JSON pour utilisation de modèle (explicite par modèle ou implicite par type article)
Après la création d’un article modèle , une ligne est ajoutée dans la table historique article déclarant sa création
Créer plusieurs articles indicés
Pour traiter plusieurs articles, on utilise le ARTICLETB en indiquant une liste d’articles
Exemple de corps
Exemple complet flux JSON
Déclarer un changement sur un article indicé
Cette action est déclenchée si la référence article envoyé existe et le type article gère le cycle de vie article
Balise de paramètres (parameters) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
dos | 1 | Dossier achat-vente | NON | Par défaut selon utilisateur |
Balise du corps (data) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
articletb | 1 | Liste des articles | OUI |
|
[{champsArticle1},{champsArticle2}} | 2 | Chaque élément du tableau contient la liste des champs concernant chaque article | OUI |
|
{“nomChamp1Article1”:”valeur1”,”nomChamp2Article1”:valeur2”} | 3 | Liste des champs avec leur nom de champ et la valeur | OUI |
|
ddmfamily | 3 | Famille ddm | OUI |
|
description1 | 3 | description de la demande | OUI |
|
reference | 3 | Référence article | OUI |
|
ddmdate | 3 | Date ddm | OUI |
|
ddmuser | 3 | utilisateur | OUI |
|
Aucune modification de la fiche article ne sera réalisée
Il faudra fournir les balises JSON nécessaires à la création d’une DDM à minima
DDMFAMILY
+DESCRIPTION1
Le code étape est généré automatiquement le premier code étape trouvé avec le statut maître “accepté”
l’ODM est généré automatiquement
Rappel : forcer l’indice destination avec la balise ARTIND en suivant les informations suivantes : Création articles (V10.12) (JSON) | Préambule : forcer l’indice de destination
Exemple de corps
Exemple complet flux JSON
Créer un nouvel article non indicé
Cette action est déclenchée si la référence article envoyé n'existe pas et le type article ne gère pas le cycle de vie article
la création d’un article peut se faire à travers un article modèle ou sans article modèle
ce que fait la différence entre la création d’un article indicé et un article non indicé est le flag “cycle de vie article” dans la table “T114” (type article) ; il ne doit pas être cochéCette action est déclenchée si la
Balise de paramètres (parameters) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
dos | 1 | Dossier achat-vente | NON | Par défaut selon utilisateur |
Balise du corps (data) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
articletb | 1 | Liste des articles | OUI |
|
[{champsArticle1},{champsArticle2}} | 2 | Chaque élément du tableau contient la liste des champs concernant chaque article | OUI |
|
{“nomChamp1Article1”:”valeur1”,”nomChamp2Article1”:valeur2”} | 3 | Liste des champs avec leur nom de champ et la valeur | OUI |
|
reference | 3 | Référence article | OUI | Référence article inexistante |
articletypecode ou modeleref | 3 | type article ou choix article modèle | OUI | Voir chapitre préambule |
designation | 3 | désignation de l’article | OUI si type article sans modèle |
|
salesaccount | 3 | compte vente | OUI si type article sans modèle |
|
purchaseaccount | 3 | compte achat | OUI si type article sans modèle |
|
stockaccount | 3 | compte stock | OUI si type acticle sans modèle |
|
Si le champ article modèle dans la table “T114” (type article) est rempli , tous les champs seront initialisés à partir de ce modèle
Le contenu transporté par JSON remplace ou complète le contenu du modèle
Exemple de corps sans modèle
dans l’exemple ci-dessous le type article “PIECE” ne gère pas le cycle de vie article
Exemple de corps avec modèle
Il faut que l’article modèle soit renseigné dans la table “T114” (type article)
Exemple complet flux JSON
Modifier un article non indicé
Cette action est déclenchée si la référence article envoyé existe et le type article ne gère pas le cycle de vie article
Balise de paramètres (parameters) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
dos | 1 | Dossier achat-vente | NON | Par défaut selon utilisateur |
Balise du corps (data) | Niveau | Contenu | Obligatoire | Remarques |
---|---|---|---|---|
articletb | 1 | Liste des articles | OUI |
|
[{champsArticle1},{champsArticle2}} | 2 | Chaque élément du tableau contient la liste des champs concernant chaque article | OUI |
|
{“nomChamp1Article1”:”valeur1”,”nomChamp2Article1”:valeur2”} | 3 | Liste des champs avec leur nom de champ et la valeur | OUI |
|
reference | 3 | Référence article | OUI |
|
Le code étape est généré automatiquement le premier code étape trouvé avec le statut maître “accepté”
l’ODM est généré automatiquement
Exemple de corps
Exemple complet flux JSON
Format de la réponse
Balise | Contenu |
---|---|
error | Anomalie technique de l’appel du service web 0 = pas n’anomalie, autre valeur = anomalie Dans ce cas la balise |
result | Détail du résultat fonctionnel de l’appel du service web
|
Exemple de Réponse
La balise “errormessage” contient tout les erreurs séparées avec “|”
La balise ”response” contient tous les articles intégrés avec succès
Intégration OK
Intégration KO pour les deux premiers articles et modification OK pour le dernier article
Mapping de champs
Un mapping existe entre les noms de champs du dictionnaire et les noms de balise à utiliser. Tous les détails dans le module GTTMMAPPING.dhsp
Table ART(articles)
Nom de balise | Nom de champ |
---|---|
WAREHOUSE | Depo |
NATURESSTOCK | Nst |
REFERENCE | Ref |
ARTICLEINDEX | ArtInd |
CREATIONUSER | UserCr |
MODIFICATIONUSER | UserMo |
CONFIGURATON | Conf |
DESIGNATION | Des |
ABBREVIATEDDESIGNATION | DesAbr |
EAN | Ean |
THIRDPARTY | Tiers |
TARIFICATIONREFERENCE | TaRef |
REPLACEMENTREFERENCE | RefRpl |
PRODUCTRATEFAMILYEXCEPTION | TaFamRx |
PRODUCTRATEFAMILY | TaFamR |
PRODUCTDISCOUNTCLASSEXCEPTION | ReFamRx |
PRODUCTDISCOUNTCLASSEXCEPTION | ReFamR |
PRODUCTCOMMISSIONCLASS | CoFamR |
STATISTICALFAMILY | Fam |
PRODUCTNATURE | ProdNat |
PRODUCTNATURE1 | ProdNat1 |
PRODUCTNATURE2 | ProdNat2 |
REFERENCEUNIT | RefUn |
PURCHASINGUNIT | AchUn |
STORAGEUNIT | StUn |
SALEUNIT | VenUn |
WEIGHTUNIT | PoiUn |
VOLUMEUNIT | VolUn |
DIMENSIONUNIT | DimUn |
SALESACCOUNT | CptV |
PURCHASEACCOUNT | CptA |
STOCKACCOUNT | CptS |
TPF | TpfRT |
SALETPF | TpfR |
VATNOMENCLATURECUSTOMS | TvaNom |
VATCUSTOMSUNIT | TvaUn |
VATREGIMECODE | TvaRgCod |
PRINTCODE | EdCod |
SUBREFERENCEGRIDCODE | GriCod |
FREEALPHAZONE | Zona |
MEDIA | Media |
HTML | Html |
ANALYTICALAXISMASK | AxeMsk |
ANALYTICALAXISNUMBER | AxeNo |
ABCCODE | AbcCod |
QUESTION | Question |
MRPRULE | CbnGesCod |
COMPETENCYCODE | CompetCod |
COMPETENCYDOMAINCODE | CompetDomCod |
COMPETENCYCODE2 | CompetCod2 |
INTERESTABLISHEMENTPUCHASINGACCOUNT | CptACes |
INTERESTABLISHEMENTPURCHASEACCOUNT | CptVCes |
PURCHASEPRICINGFAMILYRX | AchTaFamRX |
PURCHASEPRICINGFAMILYR | AchTaFamR |
PURCHASEDISCOUNTCLASSRX | AchReFamRX |
PURCHASEDISCOUNTCLASSR | AchReFamR |
SURFACEUNIT | SurfUn |
LOYALTYDIVISORCOEFFICIENT | CoefPts |
CONFIGURATORFORM | ConfigurateurFormulaire |
CONFIGURATORPATHCODE | ConfigurateurCheminCod |
SMCINDICATOR | SMCFl |
SMCVISUINDICATOR | SMCVisuFl |
CREATIONDATE | UserCrDt |
MODIFICATIONDATE | UserMoDt |
EXPIRATIONDATE | HsDt |
LASTOPERATIONDATEHOUR | DopDh |
MEMONUMBER | Note |
NETWEIGHT | PoiN |
GROSSWEIGHT | PoiB |
GRIDMODETYPING | GriSais |
QUANTITYINCUSTOMERRESERVATION | ResTotQte |
QUANTITYINCUSTOMERORDER | CdeClQte |
QUANTITYINSUPPLIERORDER | CdeFoQte |
CUMULATIVESTOCKQUANTITY | StTotQte |
INVENTORYDATE | InvDt |
WARRANTYDURATION | GarJrNb |
STOCKCODE | StCod |
GLOBALCODE | GiCod |
VOLUME | Vol |
DIMENSION | Dim |
SUBREFERENCECODE | SrefCod |
TYPINGOPTION | OpSais |
DIGITALFREEZONE | Zonn |
PROFITMARGIN | MgTx |
EXPIRATIONINDAYS | PerJrNb |
STOCKVALUATIONMETHOD | StValCod |
STOCKWITHDRAWALMETHOD | StSorCod |
WEBORDERPLACEMENT | Webcdecod |
SALEPRICECODE | PvCod |
LINKEDLINETYPE | LgTyp |
STOCKRESERVATIONINDICATOR | StRes |
OFQUANTITY | CdeInQte |
ATTACHNUMBER | Joint |
OFRESCHEDULING | RejalOf |
ORDERRESCHEDULING | RejalCde |
OFRESCHEDULINGHORIZON | RejalOfJrNb |
ORDERRESCHEDULINGHORIZON | RejalCdeJrNb |
TOLERANCERATE | ToleranceTx |
COMMISIONTYPING | ComSais |
SURFACE | Surf |
VOLUMEEXPANSIONFACTOR | CoeFoiVol |
HANDLINGUNIT | ManUn |
ABCCATEGORYTYPE | StLgtAbcCod |
OUTOFSPECINDICATOR | StLgtHgCod |
OVERSIZEDPACKAGENUMBER | StLgtHgColiNb |
ABCRANK | RangAbc |
PDPINDICATOR | PDP |
PDPPERIOD | PDPPerCod |
PDPLEADTIME | PDPDelObt |
PDPCLOSEDPERIODNUMBER | PDPFermePerNb |
PDPNEGOPERIODNUMBER | PDPNegoPerNb |
PDPBATCHQUANTITY | PDPLotQte |
PDPPERIODGROUPINGNUMBER | PDPRegPerNb |
PDPGAPMAX | PDPEcartMax |
ARTICLEVATSYSTEM | TvaArt |
PUCHASEARTICLEVATSYSTEM | TvaArtA |
WMQUANTITYIMP | WmQteImp |
CODREPLENISHMENT | WmReapFroidFl |
SUBREFERENCE1 | Sref1 |
SUBREFERENCE2 | Sref2 |
ESTIMATEPREFIX | PrefDvNo |
ESTIMATENUMBER | DvNo |
TECHNICALQUOTATIONRANGEINDEX | DTInd |
CUSTOMERCODE | TiersCli |
REVIEWARTICLEINDICATOR | RevuArt |
ICPINDICATOR | ICPFl |
BUDGETCODE | BudgetCod |
LOGISTICWORKUNIT | TravUn |
AVERAGEPRICE | PrixMoy |
CONTRACTCODE | ContratCod |
CONTRACTFAMILY | ContratFam |
AUTOMATICEANFLAG | EANAutoFl |
ARTICLETYPECODE | TypeArtCod |
RESERVATIONDAYNUMBER | ResJrNb |
BARGAIN | Marche |
QUANTITY | Qte |
THIRDPARTYREFERENCE | TiersRef |
EPHEMERALARTICLEINDICATOR | ephemereFl |
PURCHASEUNITREF | AchUnRef |
MINIMALQUANTITY | QteMin |
QUANTITYBY | QtePar |
FIXEDASSERACCOUNT | CptI |
VISA | Visa |
APPROACHFEETYPECODE | FraisAppTypCod |
TRANSITSHIPPINGZONEFLAG | TransitFl |
LABORARTICLEREFERENCE | RefMo |
LABORPREPQUANTITY | MoPrepQte |
LABORPREPQUANTITYBY | MoPrepQtePar |
LABORPREPQUANTITYTYPE | MoPrepQteTyp |
LABORPOSEQUANTITY | MoPoseQte |
LABORPOSEQUANTITYBY | MoPoseQtePar |
LABORPOSEQUANTITYTYPE | MoPoseQteTyp |
TAXCREDITPERCENTAGE | CreditImpotP |
REBATEELIGIBLEARTICLE | RistournFl |
CUSTOMSFEEINDICATOR | FraisDouaneFl |
TAGIDENTIFIER | TagId |
NONTAXEBLEVAT | TvaNAssujettieFl |
DIVISIBLEARTICLE | SecableFl |
PREPROUNDINGQUANTITY | BpQteArr |
PRICESCLASSIFICATIONCODE | ClasCodTar |
DAORESCHEDULING | RejalDao |
DAORESCHEDULINGHORIZON | RejalDaoJrNb |
DATESPERIODTYPINGINDICATOR | PeriodeFl |
ARTICLEMODELTYPEORIGIN | ArtModTypOri |
MODELREFERENCEORIGIN | ModeleRefOri |
POSTCONSUMPTIONINDICATOR | PostConsoFl |
BFACLASSIFICATIONCODE | ClasCodBfa |
CFGARTICLETYPE | CFGType |
CFGFORMCODE | FormCFGCod |
STATUSCODE | StatutCod |
MASTERSTATUS | StatutM |
INITIALVERSIONINDICATOR | CvaInitFl |
ARTICLEMASTERNUMBER | ArtMasterNo |
ARTICLEMASTERATTACH | ArtMasterJoint |
ARTICLEPROJECTMANAGER | SalCod |
LIFECYCLEINDICATOR | CvaFl |
PREFIXNUMBERCFG | PrefCfgRfNo |
ROLECODE | RegleCod |
CONSUMPTIONHISTTYPE | HistConsoTyp |
CONFIGURATORWSCODE | ConfigurateurSwCod |
REFFEEAMOUNTTABLE | TRefFraisMt |
REFFEERATETABLE | TRefFraisTx |
FEETYPE | TRefFraisTyp |
REFCOEFFICIENTTABLE | TRefCoef |
REFERENCEPRICEIMPLICIT | TrefImplicite |
ARTICLETRACEABILITYINDICATOR | ArtTracfl |
CLASSIFICATIONRATECODE | ClasCodTx |
GDADESPUTEINDICATOR | GDALitigeFl |
UNITCONTROLINDICATOR | CtrlUniteFl |
SALESTARTDATE | VenDebDt |
SALEENDDATE | VenFinDt |
PURCHASESTARTDATE | AchDebDt |
PURCHASEENDDATE | AchFinDt |
EXPEDITIONENDDATE | ExpFinDt |
RECEPTIONENDDATE | ReceptFinDt |
OFBEGINDATE | OfDebDt |
OFENDDATE | OfFinDt |
CONSUMPTIONBEGINDATE | ConsoDebDt |
CONSUMPTIONENDDATE | ConsoFinDt |
PRICECALCULATIONCODE | TarMod |
PRICEMETHODCHANGE | TarModModif |