Debitorenname in Netzplanvorgang über VC reinschreiben

SAP R/3 Vertrieb: Auftragsverwaltung, Versand und Transport, Fakturierung, Kreditmanagement, Außenhandel/Zoll...
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
Hallo Leute,

Ich habe ein Konfigurierbarer Material im SD welches mir im Auftragsfall einen Netzplan mit PSP-Elementen hochzieht. Die Vorgänge im Netzplan werden über Bezeihungswissen gesteuert. Ich möchte jetzt den Vorgangstext mit den Debitorennamen verknüpfen und diesen dann so abbändern

Z.B. Standardtext - Vorgang: Projektvorbereitung
Debitorennamen: Müller AG
-> Ergebnis: Müller AG - Projektvorbereitung

Mein Problem ist, dass Ich den Namen vom Debitor nirgends rauskriege. Die Debitorennummer könnte Ich über ein Merkmal mit dem Verweis auf der Tabelle VBAK und Feldname KUNNR.

Ich bräuchte somit eine Funktion, welche als Input die KUNNR hat und dabei eine Abfrage über die KNNR in der Tabelle KNA1 mach und mir dabei den NAME1 zurückgibt. Diese Funktion könnte Ich anschließend im Beziehungswissen verwenden.


Kann mir jemand bei der Funktion weiterhelfen? Gibt es auch einen einfacheren weg?

Danke

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


Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
Meinst du einen normalen ABAP Funtionsbaustein ?
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
ja genau, ich würde den FB dann im Beziehungswissen aufrufen. kannst du mir dabei weiterhelfen?

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
den müsstest du in der SE37 anlegen. geht ganz einfach. kennst du dich ein wenig aus mit der se37 ?

oder brauchst du eher ne vollanleitung ? :D
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
Ich habe bereits einmal in der SE37 einen FB angelegt und dabei mit hilfe von CONCATENATE mehere Input Parmeter verketten und zurückgegeben. In diesem Fall müsste Ich jedoch eine Abfrage über die KNA1 unter der bedingung von meinem INPUT machen und draus das Feld zurückgeben. Dazu bräuchte ich deine Hilfe. Kenn mich im ABAP leider nicht ganz so gut aus da dies für mich noch neuland ist. :|

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
ok hab dir rasch ein paar printscreens zusammengestellt und da du die SE37 ja schonmal gesehen hast wirst du dich ja recht schnell zurechtfinden.

so und schon bekommst du den Namen deines Kunden. :D
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
:up: wow, super. werde das gleich ausprobieren und lasse dich wissen.

danke für die rasche antwort

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
Hallo, habe die function von dir gestern noch getestet und habe diese heute so umgeschrieben dass man diese im Beziehungswissen verwenden kann. Leider funktioniert dies nicht ganz. Wenn Ich die Funktion im Beziehungswissen aufrufe, kommt der Fehler dass die Funkton unbekannt ist (E28152 Funktion ZTEST_KUNDE ist nicht deklarier)

Code:

Code: Alles auswählen.

FUNCTION ZTEST_KUNDE.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(KUNNR) TYPE  KNA1-KUNNR
*"     REFERENCE(GLOBALS) LIKE  CUOV_00 STRUCTURE  CUOV_00
*"  EXPORTING
*"     REFERENCE(NAME1) TYPE  KNA1-NAME1
*"  TABLES
*"      MATCH STRUCTURE  CUOV_01
*"      QUERY STRUCTURE  CUOV_01
*"  EXCEPTIONS
*"      FAIL
*"      INTERNAL_ERROR
*"----------------------------------------------------------------------

data: fkundenname like cuov_01-atwrt.
data: fkunnr like cuov_01-atwrt.




refresh match.
*..get value of input characteristic KUNDENNR
call function 'CUOV_GET_FUNCTION_ARGUMENT'
exporting
  argument = 'KUNDENNR'
importing
  sym_val = fkunnr
tables
  query = query
 exceptions
a rg_not_found = 01.
if sy-subrc <> 0.
  raise internal_error.
endif.



*..get NAME1 from KNA1
SELECT single name1 from kna1 into fkundenname
  where kunnr eq fkunnr.



*..add result to the table of output characteristics KUNDENNAME
call function 'CUOV_SET_FUNCTION_ARGUMENT'
exporting
  argument = 'KUNDENNAME'
  vtype = 'CHAR'
  sym_val = fkundenname
tables
  match = match
exceptions
  existing_value_replaced = 01.



ENDFUNCTION.
Was habe Ich falsch gemacht? Kannst du mir dabei weiterhelfen?

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
Ist die Funktion die du im Beziehungswissen angelegt hast, die ja auf den Funktionsbaustein verweisst freigegeben ?
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
Hallo, habe vorhin etwas vergessen und habe den FB jetzt so modifiziert, dass dieser im Beziehungswissen erkannt wird. Ich habe jetzt zwei Funktionen, eine welche als Schnittstelle für das Beziehungswissen gilt, worin ich die zweite funktion für die Abfrage aufrufe. Die Übergabe vom beziehungswissen funktioniert, auch die Rückgabe (habe zum testen einfach die eingabe dirket auf die ausgabe zugewiesen um die Kommunikation zu testen). Das Problem ist, dass die Abfrage nicht funktioniert und ich weis nicht warum?

Code: Alles auswählen.

FUNCTION ZTEST_KUNDE.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(GLOBALS) LIKE  CUOV_00 STRUCTURE  CUOV_00
*"  TABLES
*"      MATCH STRUCTURE  CUOV_01
*"      QUERY STRUCTURE  CUOV_01
*"  EXCEPTIONS
*"      FAIL
*"      INTERNAL_ERROR
*"----------------------------------------------------------------------
*{   INSERT         DEVK900097                                        1


data: fkundenname like cuov_01-atwrt.
data: fkunnr like cuov_01-atwrt.

data: fkunnr_char10(10).
data: fkundenname_char35(35).

refresh match.
*..get value of input characteristic KUNDENNR
call function 'CUOV_GET_FUNCTION_ARGUMENT'
exporting
  argument = 'KUNDENNR'
importing
  sym_val = fkunnr
tables
  query = query
 exceptions
   arg_not_found = 01.
if sy-subrc <> 0.
  raise internal_error.
endif.


move fkunnr to fkunnr_char10.


*..call select function
call function 'ZTEST_KUNDE_FUNC'
exporting kunnr = fkunnr_char10
importing name1 = fkundenname_char35
exceptions
  existing_value_replaced = 01.

move fkundenname_char35 to fkundenname.


*..add result to the table of output characteristics KUNDENNAME
call function 'CUOV_SET_FUNCTION_ARGUMENT'
exporting
  argument = 'KUNDENNAME'
  vtype = 'CHAR'
 sym_val = fkundenname
tables
  match = match
exceptions
  existing_value_replaced = 01.


*}   INSERT





ENDFUNCTION.

Code: Alles auswählen.

FUNCTION ZTEST_KUNDE_FUNC.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     REFERENCE(KUNNR) TYPE  KNA1-KUNNR
*"  EXPORTING
*"     REFERENCE(NAME1) TYPE  KNA1-NAME1
*"----------------------------------------------------------------------



*..get NAME1 from KNA1
SELECT single name1 from kna1 into name1
  where kunnr eq kunnr.

ENDFUNCTION.

Habe keine Ahnung warum die Abfrage nicht funktioniert?

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
Hast du den Funktionsbaustein zum Name holen einzeln gestet ? wenn der einzeln funktioniert ist etwas an dem Format deiner Übergabeparameter faul.

ich vermute mal da fehlen dir die führenden 0 im fkunnr_char10(10) falls du Kundennummern mit führenden Nullen hast ist sicher das das Problem.
Zuletzt geändert von ratsnus am 15.10.2009 15:06, insgesamt 1-mal geändert.
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
der fb welcher mir den namen holt funktioniert einwandfrei. Habe die Datentypen extra umkonvertiert mit move to da sonst das Programm immer abgestüzt ist.
Wenn Ich die Funktion über eine Aktion aufrufe so bekomme Ich als Rückgabewert immer einen leeren String.

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
dann mach doch spasseshalber mal

data: fkunnr_char10(10).

zu
tables: kna1.
data: fkunnr_char10 like kna1-kunnr.
<:: XING-Gruppe Tricktresor::>

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von Huehan98 (ForumUser / 15 / 1 / 0 ) »
Hallo, habe nochmals getest und das Problem lag tatsächlich an der führenden 0. Komisch? Wenn Ich den FB alleine getestet habe, musste Ich die fehlende 0 nicht eingeben. In der Übergabe aber schon. Kann dies nicht ganz nachfollziehen. Danke vielmals für die Hilfe. Echt super :up:

Re: Debitorenname in Netzplanvorgang über VC reinschreiben

Beitrag von ratsnus (Specialist / 357 / 2 / 56 ) »
die führenden Nullen halt.... das kommt öfters mal vor das man mit denen zu tun hat. :D hauptsache es klappt jetzt alles.

Folgende Benutzer bedankten sich beim Autor ratsnus für den Beitrag:
Huehan98

<:: XING-Gruppe Tricktresor::>

Vergleichbare Themen

3
Antw.
559
Views
0 in ein Feld bei Select Option reinschreiben
von L0w-RiDer » 30.07.2019 11:18 • 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.