Exécuter une ACTION du STD

Sur Sage X3 v12 (2021R3), j'essaye d'exécuter dans un TRT l'action $APRES_CHOI du strandard dans un SPE.

Le process est le suivant : Nous disposons d'un Objet appelé ZDK, depuis cet objet, j'ouvre une fenêtre via une action AZDK1 qui me permet de sélectionner des commandes pour générer des données de production (Action avec écran et code spécifique).

GACTION = "AZDK1"
Call SAISIE_CHAR(VALBOUT,PARBOUT,"OZDK1","SUBZDK1","SPEZDK1") From GSAISIE

Après avoir sélectionné des éléments, un bouton permet de valider la sélection et génère des données stockées en base (dans une table dédié -> ZDK). Lorsque je retourne sur l'objet ZDK, il faudrait forcer l'exécution du $APRES_CHOI en précisant la valeur de la variable : REPONSE = GSTARAF (GSTARAF valant 1799 permet l'exécution du bouton de rechargement des données -> GOBJSUB->$RAFFRAICHIR qui exécute le GOBJSUB->$RELIT).

Dans le traitement spé (SPEZDK) après la génération des données, nous avons mis un flag qui permet de forcer la valeur du $APRES_CHOI à 1799. A ce moment là, si j'exécute une action quelconque : appui sur ENTER, cliquer sur un bouton ou autre... l'écran est alors bien rechargé comme désiré.

$APRES_CHOI
(...)
If TEST = "OK" Then
  REPONSE = GSTARAF
Endif
Return

Mon idée est donc depuis mon traitement de forcer l'exécution de l'action APRES_CHOI pour automatiser le processus :

Local Char ACTION
ACTION = "APRES_CHOI"
Gosub ACTION From GOBJSUB

Le soucis est qu'une erreur apparait, certaines variables utilisées dans le STD ne semblent pas être déclarées :

Je ne désire pas déclarer les variables du STD dans mon spé comme c'est suggéré sur ce poste :  https://www.sagecity.com/us/sage_erp_x3/f/sage-x3-general-discussion-forum/103996/hot-to-invoke-refresh-button

Mais plutôt trouver et exécuter le code standard qui initialise les variables STD avant de faire mon Gosub ACTION From GOBJET/GOBJSUB/GTRAITE. (Comme ça, lors des patch/MAJ j'aurais moins de chance d'avoir à reprendre mon spé).
 
Ce post est aussi disponible sur stackoverflow https://stackoverflow.com/questions/74385935/execute-action-from-std-on-sage-x3 et sur la discussion générale US : https://www.sagecity.com/us/sage_erp_x3/f/sage-x3-general-discussion-forum/192806/execute-action-from-std-on-sage-x3


Comment exécuter une ACTION du STD depuis un traitement SPE ?

  • Bonjour Damien,

    Merci d’avoir utilisé Sage City,

    Au sujet de votre demande, Nous voyons que vous avez obtenu des réponses de la part de la communauté US ou vous avez également posté ce post.

    Nous espérons que celles ci vous ont permis d'avancer sur le sujet.

    Pour vous aiguiller davantage, vous pouvez consulter certains articles sur la base de Connaissance SageKb: https://fr-kb.sage.com

    Faites-nous savoir si la réponse vous a été utile en la marquant comme vérifiée . Pour cela, cliquez sur  ‘plus’ au niveau de la réponse apportée ( qui normalement se trouve marquée en orange), puis allez sur  la ligne ‘Vérifier la réponse’. .

    Merci d'avoir utilisé la communauté.

    Cordialement,

    Anthony

  • 0 in reply to Sage City France - Anthony

    Bonjour,

    Effectivement, la discussion sur la communauté US à donné des pistes, mais le sujet n'a malheureusement pas été solutionné.
    Je laisse la discussion ouverte en attendant de trouver une solution.

    Merci.
    Bien cordialement,

    Damien

  • 0

    Bonjour,

    Le plus simple est de faire Gosub RAFFRAICHIR From GOBJSUB

    Par contre, il faut l'appeler dans le contexte d'appel de l'objet, après le Call SAISIE_CHAR(VALBOUT,PARBOUT,"OZDK1","SUBZDK1","SPEZDK1") From GSAISIE

    Cdlt,

  • 0 in reply to Spok45

    Bonjour,

    Merci pour la réponse.
    Je suis justement en dehors du contexte de l'objet, je dois le jouer dans le traitement du ZDK1.

    Pour ce faire, en attendant d'avoir une meilleur solution, je déclare toutes les variables du STD dans le ZDK1 pour simuler le contexte de l'objet ZDK. L'objectif de cette discussion est de trouver une solution fonctionnelle pour rejouer le contexte d'un objet depuis un autre TRT sans avoir besoin de déclarer soi même les variables (Du type DECLARE/INIT from GOBJET ...).

    Cdt,