Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif,
récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les
ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké
dans un tableau d'éléments "structures" décomposé selon les différents
éléments de la requette (n° de commande, n° de ligne, Ref article, ...)
Malheureusement, les données injectés dans le tableau résultat sont mal
distribués (le n° de commande contient n° de commande + n° de ligne + la
moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré
en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous
sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous
les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure
SD_DOC est un entier
ITM_NUMBER est une entier
MATERIAL est une chaîne
SHORT_TEXT est une chaîne
DOC_TYPE est une chaîne
DOC_DATE est une chaîne
REQ_QTY est une chaîne
REQ_DATE est une chaîne
PURCH_NO est une chaîne
BATCH est une chaîne
VALID_FROM est une chaîne
VALID_TO est une chaîne
BILL_BLOCK est une chaîne
DLV_BLOCK est une chaîne
SOLD_TO est une chaîne
NAME est une chaîne
EXCHG_RATE est une chaîne
DLV_QTY est une chaîne
BASE_UOM est une chaîne
NET_PRICE est une chaîne
COND_P_UNT est une chaîne
COND_UNIT est une chaîne
NET_VAL_HD est une chaîne
NET_VALUE est une chaîne
DIVISION est une chaîne
DOC_STATUS est une chaîne
SALES_GRP est une chaîne
SALES_OFF est une chaîne
SALES_ORG est une chaîne
SALES_UNIT est une chaîne
SHIP_POINT est une chaîne
DISTR_CHAN est une chaîne
GI_DATE est une chaîne
lCURRENCY est une chaîne
PLANT est une chaîne
STORE_LOC est une chaîne
ORD_REASON est une chaîne
REASON_REJ est une chaîne
B_UOM_ISO est une chaîne
CD_UNT_ISO est une chaîne
S_UNIT_ISO est une chaîne
CURR_ISO est une chaîne
PURCH_NO_C est une chaîne
EXCHG_RATE_V est une chaîne
MAT_EXT est une chaîne
MAT_GUID est une chaîne
MAT_VERS est une chaîne
CREATION_DATE est une chaîne
CREATION_TIME est une chaîne
FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion
au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion
au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur
SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion
,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JeAn-PhI
Fredo a écrit :
Bonjour,
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif, récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké dans un tableau d'éléments "structures" décomposé selon les différents éléments de la requette (n° de commande, n° de ligne, Ref article, ...) Malheureusement, les données injectés dans le tableau résultat sont mal distribués (le n° de commande contient n° de commande + n° de ligne + la moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure SD_DOC est un entier ITM_NUMBER est une entier MATERIAL est une chaîne SHORT_TEXT est une chaîne DOC_TYPE est une chaîne DOC_DATE est une chaîne REQ_QTY est une chaîne REQ_DATE est une chaîne PURCH_NO est une chaîne BATCH est une chaîne VALID_FROM est une chaîne VALID_TO est une chaîne BILL_BLOCK est une chaîne DLV_BLOCK est une chaîne SOLD_TO est une chaîne NAME est une chaîne EXCHG_RATE est une chaîne DLV_QTY est une chaîne BASE_UOM est une chaîne NET_PRICE est une chaîne COND_P_UNT est une chaîne COND_UNIT est une chaîne NET_VAL_HD est une chaîne NET_VALUE est une chaîne DIVISION est une chaîne DOC_STATUS est une chaîne SALES_GRP est une chaîne SALES_OFF est une chaîne SALES_ORG est une chaîne SALES_UNIT est une chaîne SHIP_POINT est une chaîne DISTR_CHAN est une chaîne GI_DATE est une chaîne lCURRENCY est une chaîne PLANT est une chaîne STORE_LOC est une chaîne ORD_REASON est une chaîne REASON_REJ est une chaîne B_UOM_ISO est une chaîne CD_UNT_ISO est une chaîne S_UNIT_ISO est une chaîne CURR_ISO est une chaîne PURCH_NO_C est une chaîne EXCHG_RATE_V est une chaîne MAT_EXT est une chaîne MAT_GUID est une chaîne MAT_VERS est une chaîne CREATION_DATE est une chaîne CREATION_TIME est une chaîne FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion ,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
trace(Ltab[i]:SD_DOC,Ltab[i]:ITM_NUMBER,Ltab[i]:MATERIAL,Ltab[i]:DOC_DATE,...) fin
-- Cordialement JeAn-PhI
Fredo a écrit :
Bonjour,
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif,
récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les
ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké
dans un tableau d'éléments "structures" décomposé selon les différents
éléments de la requette (n° de commande, n° de ligne, Ref article, ...)
Malheureusement, les données injectés dans le tableau résultat sont mal
distribués (le n° de commande contient n° de commande + n° de ligne + la
moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré
en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous
sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous
les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure
SD_DOC est un entier
ITM_NUMBER est une entier
MATERIAL est une chaîne
SHORT_TEXT est une chaîne
DOC_TYPE est une chaîne
DOC_DATE est une chaîne
REQ_QTY est une chaîne
REQ_DATE est une chaîne
PURCH_NO est une chaîne
BATCH est une chaîne
VALID_FROM est une chaîne
VALID_TO est une chaîne
BILL_BLOCK est une chaîne
DLV_BLOCK est une chaîne
SOLD_TO est une chaîne
NAME est une chaîne
EXCHG_RATE est une chaîne
DLV_QTY est une chaîne
BASE_UOM est une chaîne
NET_PRICE est une chaîne
COND_P_UNT est une chaîne
COND_UNIT est une chaîne
NET_VAL_HD est une chaîne
NET_VALUE est une chaîne
DIVISION est une chaîne
DOC_STATUS est une chaîne
SALES_GRP est une chaîne
SALES_OFF est une chaîne
SALES_ORG est une chaîne
SALES_UNIT est une chaîne
SHIP_POINT est une chaîne
DISTR_CHAN est une chaîne
GI_DATE est une chaîne
lCURRENCY est une chaîne
PLANT est une chaîne
STORE_LOC est une chaîne
ORD_REASON est une chaîne
REASON_REJ est une chaîne
B_UOM_ISO est une chaîne
CD_UNT_ISO est une chaîne
S_UNIT_ISO est une chaîne
CURR_ISO est une chaîne
PURCH_NO_C est une chaîne
EXCHG_RATE_V est une chaîne
MAT_EXT est une chaîne
MAT_GUID est une chaîne
MAT_VERS est une chaîne
CREATION_DATE est une chaîne
CREATION_TIME est une chaîne
FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion
au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion
au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur
SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion
,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif, récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké dans un tableau d'éléments "structures" décomposé selon les différents éléments de la requette (n° de commande, n° de ligne, Ref article, ...) Malheureusement, les données injectés dans le tableau résultat sont mal distribués (le n° de commande contient n° de commande + n° de ligne + la moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure SD_DOC est un entier ITM_NUMBER est une entier MATERIAL est une chaîne SHORT_TEXT est une chaîne DOC_TYPE est une chaîne DOC_DATE est une chaîne REQ_QTY est une chaîne REQ_DATE est une chaîne PURCH_NO est une chaîne BATCH est une chaîne VALID_FROM est une chaîne VALID_TO est une chaîne BILL_BLOCK est une chaîne DLV_BLOCK est une chaîne SOLD_TO est une chaîne NAME est une chaîne EXCHG_RATE est une chaîne DLV_QTY est une chaîne BASE_UOM est une chaîne NET_PRICE est une chaîne COND_P_UNT est une chaîne COND_UNIT est une chaîne NET_VAL_HD est une chaîne NET_VALUE est une chaîne DIVISION est une chaîne DOC_STATUS est une chaîne SALES_GRP est une chaîne SALES_OFF est une chaîne SALES_ORG est une chaîne SALES_UNIT est une chaîne SHIP_POINT est une chaîne DISTR_CHAN est une chaîne GI_DATE est une chaîne lCURRENCY est une chaîne PLANT est une chaîne STORE_LOC est une chaîne ORD_REASON est une chaîne REASON_REJ est une chaîne B_UOM_ISO est une chaîne CD_UNT_ISO est une chaîne S_UNIT_ISO est une chaîne CURR_ISO est une chaîne PURCH_NO_C est une chaîne EXCHG_RATE_V est une chaîne MAT_EXT est une chaîne MAT_GUID est une chaîne MAT_VERS est une chaîne CREATION_DATE est une chaîne CREATION_TIME est une chaîne FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion ,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
trace(Ltab[i]:SD_DOC,Ltab[i]:ITM_NUMBER,Ltab[i]:MATERIAL,Ltab[i]:DOC_DATE,...) fin
-- Cordialement JeAn-PhI
Fredo
-- Frédéri LACROIX Resp. Informatique Datacol France 04 66 57 30 00 "JeAn-PhI" a écrit dans le message de news:
Fredo a écrit :
Bonjour,
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif, récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké dans un tableau d'éléments "structures" décomposé selon les différents éléments de la requette (n° de commande, n° de ligne, Ref article, ...) Malheureusement, les données injectés dans le tableau résultat sont mal distribués (le n° de commande contient n° de commande + n° de ligne + la moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure SD_DOC est un entier ITM_NUMBER est une entier MATERIAL est une chaîne SHORT_TEXT est une chaîne DOC_TYPE est une chaîne DOC_DATE est une chaîne REQ_QTY est une chaîne REQ_DATE est une chaîne PURCH_NO est une chaîne BATCH est une chaîne VALID_FROM est une chaîne VALID_TO est une chaîne BILL_BLOCK est une chaîne DLV_BLOCK est une chaîne SOLD_TO est une chaîne NAME est une chaîne EXCHG_RATE est une chaîne DLV_QTY est une chaîne BASE_UOM est une chaîne NET_PRICE est une chaîne COND_P_UNT est une chaîne COND_UNIT est une chaîne NET_VAL_HD est une chaîne NET_VALUE est une chaîne DIVISION est une chaîne DOC_STATUS est une chaîne SALES_GRP est une chaîne SALES_OFF est une chaîne SALES_ORG est une chaîne SALES_UNIT est une chaîne SHIP_POINT est une chaîne DISTR_CHAN est une chaîne GI_DATE est une chaîne lCURRENCY est une chaîne PLANT est une chaîne STORE_LOC est une chaîne ORD_REASON est une chaîne REASON_REJ est une chaîne B_UOM_ISO est une chaîne CD_UNT_ISO est une chaîne S_UNIT_ISO est une chaîne CURR_ISO est une chaîne PURCH_NO_C est une chaîne EXCHG_RATE_V est une chaîne MAT_EXT est une chaîne MAT_GUID est une chaîne MAT_VERS est une chaîne CREATION_DATE est une chaîne CREATION_TIME est une chaîne FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion ,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
trace(Ltab[i]:SD_DOC,Ltab[i]:ITM_NUMBER,Ltab[i]:MATERIAL,Ltab[i]:DOC_DATE,...) fin
-- Cordialement JeAn-PhI
L'affectation du tableau avec pour tout n'est pas en cause, l'acces direct au tableau donne le même résultat.
Merci quand même pour la piste.
Frédéri.
--
Frédéri LACROIX
Resp. Informatique
Datacol France
04 66 57 30 00
"JeAn-PhI" <no.spam@spam.fr> a écrit dans le message de news:
mn.cb477d82ba6d7bdf.49289@spam.fr...
Fredo a écrit :
Bonjour,
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif,
récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les
ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être
stocké dans un tableau d'éléments "structures" décomposé selon les
différents éléments de la requette (n° de commande, n° de ligne, Ref
article, ...) Malheureusement, les données injectés dans le tableau
résultat sont mal distribués (le n° de commande contient n° de commande +
n° de ligne + la moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont
déclaré en chaine ... j'ai essayé de changer ceci en fonction du type de
champs sous sap (chaine fixe, entier, ...) la fonction n'alimente le
tableau que si tous les éléments sont déclarés en chaine ... mais elle
les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure
SD_DOC est un entier
ITM_NUMBER est une entier
MATERIAL est une chaîne
SHORT_TEXT est une chaîne
DOC_TYPE est une chaîne
DOC_DATE est une chaîne
REQ_QTY est une chaîne
REQ_DATE est une chaîne
PURCH_NO est une chaîne
BATCH est une chaîne
VALID_FROM est une chaîne
VALID_TO est une chaîne
BILL_BLOCK est une chaîne
DLV_BLOCK est une chaîne
SOLD_TO est une chaîne
NAME est une chaîne
EXCHG_RATE est une chaîne
DLV_QTY est une chaîne
BASE_UOM est une chaîne
NET_PRICE est une chaîne
COND_P_UNT est une chaîne
COND_UNIT est une chaîne
NET_VAL_HD est une chaîne
NET_VALUE est une chaîne
DIVISION est une chaîne
DOC_STATUS est une chaîne
SALES_GRP est une chaîne
SALES_OFF est une chaîne
SALES_ORG est une chaîne
SALES_UNIT est une chaîne
SHIP_POINT est une chaîne
DISTR_CHAN est une chaîne
GI_DATE est une chaîne
lCURRENCY est une chaîne
PLANT est une chaîne
STORE_LOC est une chaîne
ORD_REASON est une chaîne
REASON_REJ est une chaîne
B_UOM_ISO est une chaîne
CD_UNT_ISO est une chaîne
S_UNIT_ISO est une chaîne
CURR_ISO est une chaîne
PURCH_NO_C est une chaîne
EXCHG_RATE_V est une chaîne
MAT_EXT est une chaîne
MAT_GUID est une chaîne
MAT_VERS est une chaîne
CREATION_DATE est une chaîne
CREATION_TIME est une chaîne
FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la
connexion
au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la
connexion
au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au
serveur
SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion
,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table
-- Frédéri LACROIX Resp. Informatique Datacol France 04 66 57 30 00 "JeAn-PhI" a écrit dans le message de news:
Fredo a écrit :
Bonjour,
Je suis en train d'essayer d'interfacer Windev 12 avec SAP (objectif, récupérer la liste et l'état des commandes pour un client précis)
J'arrive bien à me connecter à SAP et à récupérer la liste de toutes les ignes de commandes en utilisant la BAPI : BAPI_SALESORDER_GETDETAIL.
Mon soucis est le suivant : Le resultat de cette fonction doit être stocké dans un tableau d'éléments "structures" décomposé selon les différents éléments de la requette (n° de commande, n° de ligne, Ref article, ...) Malheureusement, les données injectés dans le tableau résultat sont mal distribués (le n° de commande contient n° de commande + n° de ligne + la moitié de la ref article) etc ...
Selon l'exemple fourni, les différents éléments de la structure sont déclaré en chaine ... j'ai essayé de changer ceci en fonction du type de champs sous sap (chaine fixe, entier, ...) la fonction n'alimente le tableau que si tous les éléments sont déclarés en chaine ... mais elle les alimentes mal.
Quelqu'un aurait t'il trouvé une solution pour pallier à ce problème.
Merci d'avance.
Voici ci-apres l'exemple de code que j'utilise.
SalesOrder est une structure SD_DOC est un entier ITM_NUMBER est une entier MATERIAL est une chaîne SHORT_TEXT est une chaîne DOC_TYPE est une chaîne DOC_DATE est une chaîne REQ_QTY est une chaîne REQ_DATE est une chaîne PURCH_NO est une chaîne BATCH est une chaîne VALID_FROM est une chaîne VALID_TO est une chaîne BILL_BLOCK est une chaîne DLV_BLOCK est une chaîne SOLD_TO est une chaîne NAME est une chaîne EXCHG_RATE est une chaîne DLV_QTY est une chaîne BASE_UOM est une chaîne NET_PRICE est une chaîne COND_P_UNT est une chaîne COND_UNIT est une chaîne NET_VAL_HD est une chaîne NET_VALUE est une chaîne DIVISION est une chaîne DOC_STATUS est une chaîne SALES_GRP est une chaîne SALES_OFF est une chaîne SALES_ORG est une chaîne SALES_UNIT est une chaîne SHIP_POINT est une chaîne DISTR_CHAN est une chaîne GI_DATE est une chaîne lCURRENCY est une chaîne PLANT est une chaîne STORE_LOC est une chaîne ORD_REASON est une chaîne REASON_REJ est une chaîne B_UOM_ISO est une chaîne CD_UNT_ISO est une chaîne S_UNIT_ISO est une chaîne CURR_ISO est une chaîne PURCH_NO_C est une chaîne EXCHG_RATE_V est une chaîne MAT_EXT est une chaîne MAT_GUID est une chaîne MAT_VERS est une chaîne CREATION_DATE est une chaîne CREATION_TIME est une chaîne FIN
lReturn est une chaîne
Ltab est un tableau dynamique de 0 SalesOrder
cmd est un SalesOrder
// Vérification des champs
SI Adresse ~= "" ALORS
Erreur("Vous devez saisir l'adresse du serveur SAP.")
RepriseSaisie(Adresse)
FIN
SI Numéro_client ~= "" ALORS
Erreur("Vous devez saisir le numéro de client à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Numéro_client)
FIN
SI Utilisateur ~= "" ALORS
Erreur("Vous devez saisir le nom d'utilisateur à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Utilisateur)
FIN
SI Langue ~= "" ALORS
Erreur("Vous devez saisir la langue à utiliser pour la connexion au serveur SAP.")
RepriseSaisie(Langue)
FIN
IDConnexion est un entier // L'identifiant de connexion
// Paramètres de connexion
SAP.Adresse = Adresse // Adresse du serveur
SAP.NuméroSystème = Numéro_système // Numéro du système
SAP.NumClient = Numéro_client // Numéro du client
SAP.Utilisateur = Utilisateur // Nom d'utilisateur
SAP.MotDePasse = Mot_de_passe // Mot de passe
SAP.Langue = Langue // Langue du serveur
// Connexion au serveur SAP
IDConnexion = SAPConnecte()
lNumCli est une chaîne ="0000001111"
SI PAS SAPExécute(IDConnexion ,"BAPI_SALESORDER_GETLIST","CUSTOMER_NUMBER,SALES_ORGANIZATION,RETURN,SALES_ORDERS",
lNumCli ,"DAIT" ,lReturn,Ltab) ALORS
ErreurInfo(errComplet)
FIN
lCh est une chaîne
// Parcours du tableau pour le remplissage de la table