Commandes de ventes
Utilisez l’import de commandes pour créer de nouvelles commandes ou importer des modifications sur une commande déjà existante dans le système.
Vous avez également la possibilité de supprimer certaines lignes, si nécessaire, sans que la commande elle-même soit supprimée. Cela signifie qu’au moins une ligne de commande doit exister.
L'import de commandes ouvertes n'est pas géré en standard.
Une commande de vente est constituée d’un entête et de plusieurs lignes. Le fichier principal à paramétrer est toujours le fichier SORDER (entête commande) car c’est le fichier lié à l’objet SOH.
Dans le cas de création de commandes, vous devez donc paramétrer deux identificateurs :
- un pour le fichier entête SORDER,
- un pour le fichier détail SORDERQ.
Lors d’un import en modification, la reconnaissance de l’existence de l’objet principal se fait de façon automatique avec la clé principale qui est le numéro de commande (SOHNUM). La reconnaissance de l’existence des lignes détails se fait, quant à elle, de trois manières en fonction de la présence ou non du numéro de ligne de commande dans le modèle d’import :
- Recherche avec le n° de ligne (SOPLIN) s’il est paramétré et renseigné. Si la ligne existe, elle est modifiée sinon elle est créée.
- Recherche avec la référence article et la date d’expédition si ces deux zones sont paramétrées et renseignées. Si la ligne existe, elle est modifiée sinon elle est créée.
- Recherche avec la référence article si la zone est paramétrée et renseignée. Si la ligne existe, elle est modifiée sinon elle est créée.
Si deux lignes ont la même référence article (et la même date d’expédition), il est nécessaire de paramétrer le numéro de ligne afin de les différencier. Si cela n’est pas fait, c’est toujours la première ligne correspondant aux critères de recherche qui sera traitée.
L’import commande traite la suppression d’une ligne détail. Une ligne de commande sera supprimée si elle est importée avec une quantité commandée nulle. Une commande ne pourra pas être totalement supprimée. Au moins une ligne doit exister.
Vous avez également la possibilité, lors d’un import, de préciser si la ligne de commande doit être soldée ou non. Il faut alors ajouter dans le modèle, le champ SOQSTA.
Lorsque l’import porte sur un grand nombre d’enregistrements, la durée du traitement peut s’avérer non négligeable.
Cette durée peut être réduite grâce à la mise en place de solutions visant à améliorer les performances.
Ces solutions consistent :
- A mettre en oeuvre, au niveau de l'import, un mécanisme permettant de désactiver la gestion des champs non présents dans le modèle d'import.
Pour en connaitre les modalités, reportez-vous à la section : Amélioration des performances liées à l’import. - A décliner les enregistrements multi-législations, pour chacune des législations du dossier.
Exemple : les législations FRA, POR et USA sont utilisées dans un dossier. Si les législations FRA et POR ont le même paramétrage, il est préconisé de créer un enregistrement pour la législation FRA et un enregistrement pour la législation POR, au lieu d’avoir un seul enregistrement pour toutes les législations.
Pour afficher plus d'informations sur le principe d'amélioration des performances lié à la multi-législation et connaître la liste des objets que vous pouvez décliner par législation, reportez-vous au document :Amélioration des performances : liste des objets multi-législations.
Import des conditions de facturation
Si dans le modèle d'import, une condition de facturation est présente en en-tête ou à la ligne, cette condition est utilisée pour calculer les échéances de facturation des lignes portant sur des articles non livrables.Cette règle s'applique uniquement aux commandes de catégorie normale.
Import des kits et nomenclatures
Il existe deux manières d’importer des kits et nomenclatures.
- Le champ LINTYP n’est pas présent dans le modèle. Dans ce cas, il ne faudra importer que l’article composé (les composants n’étant pas considérés comme appartenant au kit ou à la nomenclature mais traités comme des articles classiques). L’import du composé entraîne alors la génération automatique de tous les composants définis par la première alternative. Les composants de type Option ou Variante sont également générés pour la première option et la première variante.
- Le champ LINTYP est présent dans le modèle. Dans ce cas, l’import du composé ne déclenche pas la génération automatique des composants. Les lignes de composants devront être importées en précisant la valeur de LINTYP correspondant. Vous pouvez ainsi, pour des kits ou nomenclatures contenant des options ou des variantes, préciser les composants choisis.
Import de textes bruts
Lorsque nécessaire, vous avez la possibilité d’importer des textes en entête commande, en pied de commande et la ligne de commande. Effectuez ce paramétrage dans le modèle d’import en utilisant la variable globale GIMP (dans le modèle on mentionnera les zones *71…).
- GIMP(71..78) permet d’importer des textes liés à l’entête de commande. Vous pouvez donc importer un texte de 8*100 caractères soit 800 caractères.
- GIMP(81..88) permet d’importer des textes liés au pied de commande.
- GIMP(91 à 98) permet d’importer des textes liés aux lignes de commande.
Import des axes analytiques à la ligne
Voir le modèle d'import SOHFL.
Import des éléments de facturation
La valeur saisie des éléments de facturation peut être importée dans les différents documents au travers des champs INVDTAAMT. (SQH, SOH, SDH).
Import du code Affaire et impact sur les prix et remises
- Gestion du code affaire :
Il est nécessaire de distinguer la gestion mono-affaire de la gestion multi-affaires des documents. Ce mode de gestion est déterminé par le paramètre PJTNSGDOC - Une affaire par document (chapitre TC, groupe PRP).
1/ Gestion mono-affaire des documents :
Modèle d'import avec
le Code affaire ...Gestion du code affaire
sur la commande... en en-tête
... sur la ligne
En création
En modification
OUI
NON
En-tête = Valeur du fichier import en-tête
Ligne = Valeur de l'en-têteOUI
OUI
En-tête = Valeur du fichier import en-tête
Ligne = Valeur du fichier import ligne,
ou valeur de l'en-tête si la valeur de la ligne est différente de l'en-tête + message informatifNON
OUI
En-tête = Valeur vide
Ligne = Valeur vide (+ message informatif si tentative
d'import d'un code affaire non vide)En-tête = Valeur non modifiée
Ligne = Valeur non modifiée (+ message informatif
si tentative d'import d'un code affaire différent)
2/ Gestion multi-affaires des documents :
Modèle d'import avec
le Code affaire ...Gestion du code affaire
sur la commande... en en-tête
... sur la ligne
En création
En modification
OUI
NON
En-tête = Valeur du fichier import en-tête
Ligne = Valeur de l'en-têteEn-tête = Valeur du fichier import en-tête
Ligne = Valeur non modifiéeOUI
OUI
En-tête = Valeur du fichier import en-tête
Ligne = Valeur du fichier import ligneNON
OUI
En-tête = Valeur vide
Ligne = Valeur du fichier import ligneEn-tête = Valeur non modifiée
Ligne = Valeur du fichier import ligne
- Impact sur les prix et remises
Aucun re-calcul des prix et remises n'est effectué lors de l'import. Toutefois, le comportement diffère suivant que le prix est renseigné ou non dans le fichier d'import :
1/ Le prix n'est pas renseigné dans le fichier :
- En création, le prix est issu de la recherche tarifaire basée sur le code affaire du devis.
- En modification, le prix n'est pas recalculé.
2/ Le prix est renseigné dans le fichier d'import : en création comme en modification, le prix correspond à celui renseigné dans le fichier d'import.
Champs obligatoires du modèle
Les informations minimum devant être importées sont les suivantes :
- Le code du client (BPCORD)
- Le code de l’article (ITMREF)
- La quantité (QTY). Si l’unité n’est pas précisée, c'est l’unité de vente, par défaut, de l’article, qui est utilisé.
Améliorations des performances liées à l'import
Lors d’un import standard, le traitement simule le mode interactif et exécute toutes les actions associées à l’ensemble des champs saisissables des écrans de la fonction Commandes. Ainsi même les champs non présents dans le modèle d’import sont gérés, et les actions qui leur sont associées sont exécutées. La durée du traitement peut ainsi s’avérer non négligeable.
Afin d’améliorer les performances, il est possible de mettre en place un mécanisme permettant de désactiver, pendant toute la durée du traitement, la gestion des champs non présents dans le modèle d’import.
Ce mécanisme est basé sur l’utilisation d’une transaction de saisie dédiée aux imports et d’un modèle personnalisé cohérent avec cette transaction.
Ce mécanisme nécessite une intervention sur les éléments suivants :
- Le modèle d’import
- L’objet
- La transaction de saisie
- La fenêtre associée à la transaction de saisie
- Le traitement
Pour le mettre en œuvre, suivez les étapes suivantes :
1. Créez un modèle comportant uniquement les champs utiles.
Ce modèle s’appelle, par exemple, SOHIMP : il comporte uniquement les champs qui ne peuvent pas être désactivés par la transaction de saisie ou qui ne peuvent pas être initialisés par une autre fonction, comme le Site de vente, le Client commande et la Quantité commandée.
2. Créez une transaction de saisie dont les champs saisissables correspondent aux champs du modèle.
Par exemple, la transaction IMP.
3. Dupliquez l’objet de base SOH.
L’objet dupliqué s’appelle, par exemple, SOHIMP. Dans ce nouvel objet, renommez le code de chacun des écrans SOH1 à SOH4, afin que ce code soit cohérent avec celui de la transaction de saisie nouvellement créée.
Ainsi dans notre exemple, le code écran SOH1 doit être renommé en WK2IMP1, SOH2 en WK2IMP2, etc.
4. Modifiez le nouveau modèle pour remplacer le code objet SOH par le nouveau code objet SOHIMP.
5. Modifiez la fenêtre associée à la transaction de saisie afin de lui affecter le nouveau code objet.
Dans notre exemple, il s’agit de la fenêtre WOSOHIMP. Remplacez le code objet SOH par le code SOHIMP.
Cette modification doit être effectuée chaque fois que les transactions de saisie sont revalidées. En effet, cette validation provoque la re-création des fenêtres, et la réaffectation automatique du code objet d’origine.
associé au nouvel l’objet comme suit (dans notre exemple, il s’agit du traitement SUBSOHIMP) :
$ACTION
Gosub ACTION From SUBSOH
Return
Messages d'erreur
Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :
Tous les contrôles effectués par l’objet en saisie interactive sont également effectués en import de commande. Les principaux contrôles sont les suivants :
Site de vente inexistantMessage de contrôle du site de vente de la commande.
Site d’expédition inexistantMessage de contrôle du site d’expédition de la commande.
Client XXX fiche inexistanteMessage de contrôle de l’existence du client.
Article YYY fiche inexistanteMessage de contrôle de l’existence de l’article et de l’article vente.
Unité ZZZ fiche inexistanteMessage de contrôle de l’existence et de la validité de l’unité pour l’article.
QTY zone obligatoireMessage de contrôle correspondant à l’existence de cette information lors de l’import d’une commande.
Tables mises en oeuvre
Ce modèle est utilisable à la fois en import et en export. Les données sont mises à jour dans les tables suivantes :
Table |
Intitulé Table |
---|---|
BPADDRESS [BPA] |
Adresses |
BPARTNER [BPR] |
|
BPCUSTMVT [MVC] |
Mouvements clients |
BPCUSTOMER [BPC] |
|
BPDLVCUST [BPD] |
|
CPTANALIN [CAL] |
Lignes comptables analytiques |
FACILITY [FCY] |
|
ITMBPC [ITU] |
|
ITMCATEG [ITG] |
|
ITMFACILIT [ITF] |
|
ITMMASTER [ITM] |
|
ITMMVT [ITV] |
Cumuls Article-Site |
ITMSALES [ITS] |
|
ITMWRH [ITW] |
|
PRICSTRUCT [PRS] |
|
SALESREP [REP] |
|
SORDER [SOH] |
|
SORDERP [SOP] |
Commandes de vente - Prix |
SORDERQ [SOQ] |
Commandes de vente - Quantités |
SPRICLINK [SPK] |
Recherche tarifs vente (link) |
SPRICLIST [SPL] |
Tarifs clients |
SQUOTED [SQD] |
Détail devis |
SVCRFOOT [SVF] |
Document ventes - Elt pied |
SVCRVAT [SVV] |
Document ventes - Taxes |
TABCUR [TCU] |
|
TABMODELIV [TMD] |
|
TABPRTMOD [TPM] |
|
TABSOHTYP [TSO] |
|
TABUNIT [TUN] |
|
WAREHOUSE [WRH] |