Modèle d'import/export > Module Ventes > Modèle d'import/export SOH (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.

SEEINFO 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ête

    OUI

     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 informatif

    NON

    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ête

    En-tête = Valeur du fichier import en-tête
    Ligne = Valeur non modifiée

    OUI

     OUI

    En-tête = Valeur du fichier import en-tête
    Ligne = Valeur du fichier import ligne

    NON

    OUI

    En-tête = Valeur vide
    Ligne = Valeur du fichier import ligne

    En-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é.
    Lors d’un import en modification, si l’unité est changée, celle-ci n'est pas prise en compte et la quantité importée en modification correspond à l’unité existante sur la ligne de commande.
    Pour faire un import avec changement d’unité, vous devez commencer par supprimer la ligne.

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.
 
6.Créez le traitement 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 inexistant 

Message de contrôle du site de vente de la commande.

Site d’expédition inexistant 

Message de contrôle du site d’expédition de la commande.

Client XXX fiche inexistante 

Message de contrôle de l’existence du client.

Article YYY fiche inexistante 

Message de contrôle de l’existence de l’article et de l’article vente.

Unité ZZZ fiche inexistante 

Message de contrôle de l’existence et de la validité de l’unité pour l’article.

QTY zone obligatoire 

Message 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]

Business Partner

BPCUSTMVT [MVC]

Mouvements clients

BPCUSTOMER [BPC]

Clients

BPDLVCUST [BPD]

Clients livrés

CPTANALIN [CAL]

Lignes comptables analytiques

FACILITY [FCY]

Sites

ITMBPC [ITU]

Articles - Clients

ITMCATEG [ITG]

Catégorie article

ITMFACILIT [ITF]

Articles - Sites

ITMMASTER [ITM]

Articles

ITMMVT [ITV]

Cumuls Article-Site

ITMSALES [ITS]

Articles - ventes

ITMWRH [ITW]

Articles - Dépôts

PRICSTRUCT [PRS]

Structure Tarifs (cli/four)

SALESREP [REP]

Représentant

SORDER [SOH]

Commandes de vente - Entête

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]

Table des Devises

TABMODELIV [TMD]

Table des modes de livraison

TABPRTMOD [TPM]

Table des modèles d'éditions

TABSOHTYP [TSO]

Table types commandes

TABUNIT [TUN]

Table des unités

WAREHOUSE [WRH]

Dépôts