Programm als Job einplanen/ Parameterübergabe

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
15 Beiträge • Seite 1 von 1
15 Beiträge Seite 1 von 1

Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Hallole Community,

folgendes Problem. Nach Buchen eines Wareneingangs mit TA MIGO soll die Neuterminierung der Verkaufsbelege(V_V2) für die gebuchten Materialien durchgeführt werden. Dazu hab ich den BADI "MB_MIGO_BADI" ausgeprägt und die Jobeinplanung in der Methode RESET realisiert. Die Jobeinplanung funktioniert sowohl mit CALL FUNCTION "SUBMIT_JOB" als auch mit "submit report via job".

Nun möchte ich aber dem Programm die gebuchten Materialien und Werke als Parameter mitgeben. Diese Möglichkeit hab ich nur im Aufruf des Reports mit Submit via job. Allerdings poppt mir da unmittelbar nach dem Start ein POPUP des Selectionscreens der V_V2 hoch. Und zwar immer, wenn ich den Simulationsmodus des aufgerufenen Programms deaktivierte. Wie kann ich das verhindern?

Oder gibt es alternativ eine Möglichkeit dem FUBA "Submit_job" die dynamisch benötigten Parameter mitzugeben?

Danke für Eure Hilfe
ciao
Jens

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Prego,

ich nehme an du meinst JOB_SUBMIT?

Nutze den Baustein JOB_OPEN um einen neuen Job anzulegen, rufe dann den Report per SUMBIT reportname VIA JOB jobname... (nicht FuBa JOB_SUBMIT) und plane den Job via JOB_CLOSE ein.

Da kannst du alles übergeben, was du lustig bist.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Genau den meinte ich.

Ich plan den ja schon über submit via job ein, funktioniert auch. Allerdings kommt da dieses verdammte POPUP aus dem gerufenen Programm hoch. Das möchte ich verhindern. Ruf einfach mal im Testsystem die TA V_V2 auf und deaktiviere die Checkbox "Simulation". Wenn Du dann den Report startest, weißt Du was ich meine .

Trotzdem erstmal Danke für Deine Antwort

Ciao
Jens

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Jens,

ich denke du meinst folgende Abfrage:

Code: Alles auswählen.

* Nicht im Batch
  CHECK SY-BATCH EQ SPACE AND P_SIMUL EQ SPACE.

  WRITE TEXT-006 TO DA_TEXT1+0(35).
  WRITE TEXT-007 TO DA_TEXT2+0(35).

  CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
       EXPORTING
            DEFAULTOPTION = 'N'
            TEXTLINE1     = DA_TEXT1
            TEXTLINE2     = DA_TEXT2
            TITEL         = TEXT-008
       IMPORTING
            ANSWER        = DA_ANSWER.
Die sollte aber nur kommen, wenn SY-BATCH leer ist, also im DIALOG. Da du mit JOB_OPEN, SUMIT report VIA JOB und JOB_CLOSE das ganze aber im Batch durchläufst, darf die Meldung nicht kommen. Irgendwas scheinst du nicht ganz richtig zu machen, poste doch mal ein paar Brocken Code.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Hi Casman,

ich denk mir schon, das da irgendwo ein Fehler drin ist. Nur wo. Anbei mal das coding. Es ist allerdings noch kein Fehlerhandling integriert. Also nicht wundern.
Der Job wird eingeplant, incl. der übergebenen Parameter. Die Variante ist nur für die Hintergrundverarbeitung zugelassen. Der Job startet auch.

[code]
*Job öffnen
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = 'ZT2_AUFT_NEUTERM'
IMPORTING
jobcount = fl_jobnr
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.

* Step absetzen
SUBMIT SDV03V02
TO SAP-SPOOL DESTINATION 'SPOL' COPIES '1'
IMMEDIATELY '' WITHOUT SPOOL DYNPRO KEEP IN SPOOL 'X'
* VIA SELECTION-SCREEN
USING SELECTION-SET 'NEUTERMINIEREN'
WITH s_matnr IN gt_matnr
with s_werks in gt_werks
VIA JOB 'ZT2_AUFT_NEUTERM' NUMBER fl_jobnr
AND RETURN.

MESSAGE s063(zt4_allg) WITH sy-uname.

fl_start = sy-uzeit + 60.

* Job schliessen
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = fl_jobnr
jobname = 'ZT2_AUFT_NEUTERM'
* strtimmed = 'X'
sdlstrtdt = sy-datum
sdlstrttm = fl_start
IMPORTING
job_was_released = fl_job_ok
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9.
[/code]

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hmmm, sieht eigentlich gut aus.

Und im Job verhagelt dir dann das Popup "Rückstandsauflösung Verkauf" die Jobausführung? Oder meinst du eine andere Meldung?

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Nö, der Job wird eingeplant und ausgeführt.

Allerdings kommt beim Absetzen des Submit Befehls, dieses idotische POPUP hoch. Und ich will es keinem Lagerarbeiter (der wirklich nur Migo macht und sonst nix) zumuten, das bei jedem Wareneingang, der Selectionscreen mit dem Fenster aufgeht, und dort bestätigt werden muß, das die Neuterminierung (von der der entsprechende Lagermitarbeiter nichts wissen muß) gestartet werden soll.

Langer komplizierter Satz.

ciao
Jens

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Prego,

ok, jetzt krieg ich die Kurve. Das Popup wird ja zum Zeitpunkt AT SELECTION-SCREEN. gerufen, der natürlich bei SUBMIT VIA JOB ausgeführt wird. Somit bist du noch nicht im BATCH und das Popup kommt hoch.

Versuch doch mal, kurz vor deinem SUBMIT folgendes:

Code: Alles auswählen.

sy-batch = 'X'.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Hab ich auch schon probiert. Leider ohne Erfolg. Der Parameter wird zwar gesetzt, aber nur in der Methode. Im aufgerufenen Programm ist er wieder initial.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Ok, Schuss in den Ofen!

Nächster Versuch: Kannst du das Unterprogramm SICHERHEITSABFRAGE deart erweitern (keine MODIFIKATION!), dass am Anfang des Unterprogramms SY-BATCH = 'X' gesetzt wird?
Natürlich musst du dann irgendwie feststellen, woher du aufgerufen wurdest und das nur machen, wenn du aus dem BAdI kommst.

Ideen: SY-CPROG oder den ABAP-CALLSTACK holen, wenns nich anders geht.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Jetzt bin ich aber gespannt.

Wie soll ich das Programm erweitern, ohne es zu modifizieren? Entweder sitzt ich auf dem Schlauch und weiß nicht, wohin Du mich führen willst oder ich hab von der Möglichkeit wirklich noch nichts gehört?

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
Prego


Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
4.7 Aber ich glaube, langsam weiß ich , was Du meinst. Das neue Erweiterungskonzept von SAP.

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von Prego (Specialist / 101 / 19 / 1 ) »
Hab jetzt ne andere Lösung gefunden. Ich lad mir einfach die Daten der Hintergrundvariante in die Methode, ändere die Variante programmtechnisch ab und speicher sie wieder.
Danach wird der Job normal über JOB_SUBMIT eingeplant. Wobei dort die geänderte Variante mitgegeben wird.

@ casman Für Deine Hilfe, Mühe und Geduld VIELEN DANK

Ciao
Jens

Re: Programm als Job einplanen/ Parameterübergabe

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Ok, gerne. Ja, das Erweiterungsframework meine ich...ist echt ne feine Sache, da wo's halt passt.

Deine Lösung ist auch sehr kreativ. Kannste mal sehen, auf was man so kommt, wenn man lang genug davor sitzt. :-)

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1856
Views
ABAP Prozesstyp: Parameterübergabe an eigenes Programm.
von sunnyfriday » 04.09.2008 16:41 • Verfasst in ABAP® Core
4
Antw.
2363
Views
job einplanen?
von juli » 11.10.2005 15:57 • Verfasst in Basis
8
Antw.
7252
Views
Job zyklisch einplanen
von fbo » 03.01.2007 08:59 • Verfasst in ABAP® Core
4
Antw.
2682
Views
FTP Connect als Job einplanen ???
von thesaint » 23.05.2005 08:47 • Verfasst in ABAP® Core
4
Antw.
1804
Views
Jobkette einplanen
von JohnLocklay » 27.11.2019 13:45 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141