Bonjour tout le monde,
je cherche à lier une commande client avec une facture founisseur via l’API REST.
J’ai fait qqs tests via le swagger :
{
"linkedObjectsIds": {
"commande": "21"
}
}
ça ne marche pas.
Quand je le fais manuellement puis fais un GET invoices/id, j’obtiens :
"linkedObjectsIds": {
"commande": {
"54": "21"
}
},
J’ai donc 2 questions :
- quel est le numéro qui s’intercale dans le json (« 54 » dans l’exemple ci-dessus)
- Qu’est-ce qui manque dans mon code pour que ça le fasse ?
Note : je sais que certains modules le font, mais j’ai besoin de pouvoir le faire de mon côté pour l’intégrer dans des worflows N8N
Bonjour,
si vous regardez dans la table "llx_"elements_elements de dolibarr pou ces objets vous avez quoi ?
regarder également le code de fetchObjectLink de CommonObject cela vous donnera des indices
Bonjour FHenry, et merci pour cette réponse !
Effectivement, c’est bien la table qui gère les liens. J’ai fait un :
INSERT INTO `llx_element_element` (`rowid`, `fk_source`, `sourcetype`, `fk_target`, `targettype`) VALUES ('51', '21', 'commande', '5', 'invoice_supplier');
et j’ai bien eu la liaison entre la commande client et la facture fournisseur.
Note : le « 51 » est en fait l’index incrémentiel.
Avant de mettre en « résolu », 2 questions :
- y a-t-il un risque à faire un insert directement en Base de données pendant que Dolibarr est utilisé ?
- existe-t-il un moyen de faire ça via l’API REST ?
Bonjour,
Non pas de risque à faire l’insert en BDD, mais le plus sure est de passer par les méthodes de classes.
Je ne sais pas si le point d’entré API pour la methode add_object_linked de CommonObject existe. Sinon vous pouvez proposer via une PR son ajout ou le créer via un module Dolibarr
un super merci pour tes réponses !