SD Palettenart

Getting started ... Alles für einen gelungenen Start.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

SD Palettenart

Beitrag von jonas1996 (ForumUser / 24 / 7 / 0 ) »
Hallo Community

Ich habe folgendes Problem
Ich möchte auf einem Lieferschein (mit smart forms erstellt) die Palettenart der gelieferten Paletten darstellen.
Nun habe ich das Problem das wenn die Lieferung noch nicht kommisioniert wurde wird dies nicht angezeigt.
Kann mir jemand eine Möglichkeit geben wie ich es lösen kan,dass es angezeigt wird .

Fals jemand nicht weiss wo ich den die Daten lese.
ctrl + F
suche nach "vhilm"

Code: Alles auswählen.

data: lv_AdressTyp type AD_ADRTYPE,
      LS_IT_ORG like line of IS_DLV_DELNOTE-it_ORG,
      LS_HD_ADR LIKE LINE OF IS_DLV_DELNOTE-HD_ADR,
      LS_HD_ADR2 LIKE LINE OF IS_DLV_DELNOTE-HD_ADR,
      it_tel type table of adtel with header line,
      it_fax type table of adfax WITH HEADER LINE,
      is_name type BAPIADDR3,
      lt_print_name type TABLE OF TY_SZADR_PRINTFORM_LINE,
      it_TEL2 TYPE STANDARD TABLE OF BAPIADTEL WITH HEADER LINE,
      it_FAX2 type STANDARD TABLE OF BAPIADfax WITH HEADER LINE,
      ls_it_GEN type STANDARD TABLE OF LEDLV_IT_GEN with HEADER LINE,
      it_RETURN type STANDARD TABLE OF BAPIRET2,
      ls_vhilm type ty_vhilm,
      ls_betreff type sadr,
      ls_salesorg_adr type ADDR1_SEL,
      ls_firma type sadr,
      ls_lips TYPE lips,
      lv_menge type EKPO-MENGE,
      ls_t001w type t001w.
break joma.
lv_AdressTyp = '1'.

** Werk aus der ersten Lieferposition lesen
LOOP AT IS_DLV_DELNOTE-IT_ORG
  INTO LS_IT_ORG.
  exit.
ENDLOOP.

SELECT single * FROM T001W
  into ls_t001w
  WHERE WERKS = LS_IT_ORG-plant.
gv_AdressNummer = ls_t001w-adrnr.
gv_name = ls_t001w-name1.

LOOP AT IS_DLV_DELNOTE-HD_ADR
  into LS_HD_ADR
  where partn_role = 'ZT'.

ENDLOOP.

IF sy-subrc <> 0.
  LOOP AT IS_DLV_DELNOTE-HD_ADR
    INTO LS_HD_ADR
    where Partn_role = 'SP'.
  ENDLOOP.

ENDIF.
*Prüfung ob in partnerrolle 'sp' steht wenn nicht wird
*die Spediteuraddresse nicht gedruckt.
IF ls_hd_adr-partn_role = SPACE.
  GV_DRUCK  = ''.

else.

*addressdaten auslesen
  CALL FUNCTION 'ADDRESS_INTO_PRINTFORM'
    EXPORTING
*     ADRSWA_IN                      =
*     ADDRESS_1                      =
*     ADDRESS_2                      =
*     ADDRESS_3                      =
      ADDRESS_TYPE                   = lv_AdressTyp
      ADDRESS_NUMBER                 = LS_HD_ADR-ADDR_NO
*     ADDRESS_HANDLE                 = ' '
*     PERSON_NUMBER                  = ' '
*     PERSON_HANDLE                  = ' '
*     SENDER_COUNTRY                 = ' '
*     RECEIVER_LANGUAGE              = ' '
      NUMBER_OF_LINES                = 1
*     STREET_HAS_PRIORITY            = ' '
*     LINE_PRIORITY                  = ' '
*     COUNTRY_NAME_IN_RECEIVER_LANGU = ' '
*     LANGUAGE_FOR_COUNTRY_NAME      = ' '
*     NO_UPPER_CASE_FOR_CITY         = ' '
*     IV_NATION                      = ' '
*     IV_NATION_SPACE                = ' '
*     IV_PERSON_ABOVE_ORGANIZATION   = ' '
*     IS_BUPA_TIME_DEPENDENCY        = ' '
*     IV_COUNTRY_NAME_SEPARATE_LINE  = ' '
*     IV_LANGU_CREA                  = ' '
*     IV_DISPLAY_COUNTRY_IN_SHRTFORM = ' '
    IMPORTING
*     ADRSWA_OUT                     =
*     ADDRESS_PRINTFORM              =
*     ADDRESS_SHORT_FORM             =
*     ADDRESS_SHORT_FORM_S           =
*     ADDRESS_DATA_CARRIER           =
*     ADDRESS_DATA_CARRIER_0         =
*     NUMBER_OF_USED_LINES           =
*     NAME_IS_EMPTY                  =
*     ADDRESS_NOT_FOUND              =
      ADDRESS_PRINTFORM_TABLE        = lt_print_name
*     ADDRESS_SHORT_FORM_WO_NAME     =
*     EV_NATION                      =
    .
* Zugriff auf 1. zeile
  READ TABLE lt_print_name INTO GS_PRINT_NAME INDEX 1.
*TEL auslesen Kunde
  CALL FUNCTION 'ADDR_COMM_GET'
    EXPORTING
*   ADDRESS_HANDLE              = ' '
     ADDRESS_NUMBER              = LS_HD_ADR-ADDR_NO
*   DATE_FROM                   = '00010101'
*   LANGUAGE                    = SY-LANGU
      TABLE_TYPE                  = 'ADTEL'
*   IV_CURRENT_STATE            = 'X'
*   IV_FILL_EMPTY_COUNTRY       = 'X'
* IMPORTING
*   RETURNCODE                  =
    TABLES
      COMM_TABLE                  = IT_TEL
*   ERROR_TABLE                 =
*   ET_USAGE                    =
*   ET_USAGE_UUID               =
* EXCEPTIONS
*   PARAMETER_ERROR             = 1
*   ADDRESS_NOT_EXIST           = 2
*   INTERNAL_ERROR              = 3
*   OTHERS                      = 4
  .

  lv_telNR = it_tel-Telnr_long.
*FAX auslesen Kunde
  CALL FUNCTION 'ADDR_COMM_GET'
    EXPORTING
*   ADDRESS_HANDLE              = ' '
     ADDRESS_NUMBER              = LS_HD_ADR-ADDR_NO
*   DATE_FROM                   = '00010101'
*   LANGUAGE                    = SY-LANGU
      TABLE_TYPE                  = 'ADFAX'
*   IV_CURRENT_STATE            = 'X'
*   IV_FILL_EMPTY_COUNTRY       = 'X'
* IMPORTING
*   RETURNCODE                  =
    TABLES
      COMM_TABLE                  = IT_fax.
*   ERROR_TABLE                 =
*   ET_USAGE                    =
*   ET_USAGE_UUID               =
* EXCEPTIONS
*   PARAMETER_ERROR             = 1
*   ADDRESS_NOT_EXIST           = 2
*   INTERNAL_ERROR              = 3
*   OTHERS                      = 4

  lv_fax = it_fax-faxnr_long.
ENDIF.
*Tel und Fax des internen users auslesen
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
  EXPORTING
    USERNAME             = sy-uname
*   CACHE_RESULTS        = 'X'
*
 IMPORTING
*   LOGONDATA            =
*   DEFAULTS             =
   ADDRESS              = is_name
*   COMPANY              =
*   SNC                  =
*   REF_USER             =
*   ALIAS                =
*   UCLASS               =
*   LASTMODIFIED         =
*   ISLOCKED             =
*   IDENTITY             =
*   ADMINDATA            =
  TABLES
*   PARAMETER            =
*   PROFILES             =
*   ACTIVITYGROUPS       =
   RETURN               = it_Return
   ADDTEL               = it_TEL2
   ADDFAX               = it_FAX2
*   ADDTTX               =
*   ADDTLX               =
*   ADDSMTP              =
*   ADDRML               =
*   ADDX400              =
*   ADDRFC               =
*   ADDPRT               =
*   ADDSSF               =
*   ADDURI               =
*   ADDPAG               =
*   ADDCOMREM            =
*   PARAMETER1           =
*   GROUPS               =
*   UCLASSSYS            =
*   EXTIDHEAD            =
*   EXTIDPART            =
*   SYSTEMS              =
          .
gv_Vorname = is_name-firstname.
gv_Nachname = is_name-lastname.
gv_tel2 = it_tel2-tel_no.
gv_fax2 = it_fax2-fax.

*brutto auslesen und deliv numb.
gv_deliv = is_dlv_delnote-hd_gen-deliv_numb.
CALL FUNCTION 'Z_SD_GET_WEIGHT'
  EXPORTING
    VBELN      = gv_deliv
    BEL_TYPE   = 'L'
  IMPORTING
    BRUTTO_GEW = gv_brutto.
*Brutto wert in c feld speichern und aufbereiten um
*eine richtige formation zu erreichen
write gv_brutto to gv_brutto_char LEFT-JUSTIFIED.
* Bruttoeinheit auslesen
GV_BRUTTO_UNIT = IS_DLV_DELNOTE-HD_GEN-UNIT_OF_WEIGHT.
*Bestellnummer auslesen
GV_BESTELLNR = IS_DLV_DELNOTE-HD_REF-purch_no.
*Anlieferung auslesen
GV_ANLIEFERUNG = IS_DLV_DELNOTE-HD_GEN-DLV_DATE.
*Entladestelle auselesen
LOOP AT IS_DLV_DELNOTE-HD_ADR
  INTO LS_HD_ADR2
  where Partn_role = 'WE'.
ENDLOOP.
gv_adr_we = LS_HD_ADR2-Addr_no.


LOOP AT is_dlv_delnote-it_gen
  INTO ls_it_gen
  where matl_type = 'GEBI'
  or matl_type = 'FERT'.
  ls_vhilm-palbez = ls_it_gen-SHORT_TEXT.
  ls_vhilm-palmng = ls_it_gen-DLV_QTY_STOCK.
  ls_vhilm-palmeinh = ls_it_gen-BASE_UOM.

  append ls_vhilm to gt_vhilm.

ENDLOOP.
GV_ADR_WE2-ADDRNUMBER = GV_ADR_we.
CALL FUNCTION 'ADDR_GET'
  EXPORTING
    ADDRESS_SELECTION             = GV_ADR_WE2
*   ADDRESS_GROUP                 =
*   READ_SADR_ONLY                = ' '
*   READ_TEXTS                    = ' '
*   IV_CURRENT_COMM_DATA          = ' '
 IMPORTING
*  ADDRESS_VALUE                 =
*   ADDRESS_ADDITIONAL_INFO       =
*   RETURNCODE                    =
*   ADDRESS_TEXT                  =
   SADR                          = ls_betreff
* TABLES
*   ADDRESS_GROUPS                =
*   ERROR_TABLE                   =
*   VERSIONS                      =
 EXCEPTIONS
   PARAMETER_ERROR               = 1
   ADDRESS_NOT_EXIST             = 2
   VERSION_NOT_EXIST             = 3
   INTERNAL_ERROR                = 4
   OTHERS                        = 5
          .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
gv_betreff = ls_betreff-ort01.
IF IS_DLV_DELNOTE-HD_ORG-SHIP_POINT = '0915'.
  gv_abholung = 'Abholung mit Zufall besprechen'.
  ls_salesorg_adr-ADDRNUMBER = IS_DLV_DELNOTE-HD_ORG-salesorg_adr.
  CALL FUNCTION 'ADDR_GET'
  EXPORTING
    ADDRESS_SELECTION             = ls_salesorg_adr
*   ADDRESS_GROUP                 =
*   READ_SADR_ONLY                = ' '
*   READ_TEXTS                    = ' '
*   IV_CURRENT_COMM_DATA          = ' '
 IMPORTING
*   ADDRESS_VALUE                 =
*   ADDRESS_ADDITIONAL_INFO       =
*   RETURNCODE                    =
*   ADDRESS_TEXT                  =
   SADR                          =  ls_firma
* TABLES
*   ADDRESS_GROUPS                =
*   ERROR_TABLE                   =
*   VERSIONS                      =
 EXCEPTIONS
   PARAMETER_ERROR               = 1
   ADDRESS_NOT_EXIST             = 2
   VERSION_NOT_EXIST             = 3
   INTERNAL_ERROR                = 4
   OTHERS                        = 5
          .
  gv_name = ls_firma-name1.
ENDIF.
SELECT * from lips
 INTO ls_lips
 where bwart <> SPACE
 and lfimg <> 0
 and vbeln = GV_DELIV.
  break joma.
if LS_LIPS-VRKME <> 'LU'.
    CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
      EXPORTING
        i_matnr              = ls_lips-matnr
        i_in_me              = ls_lips-vrkme
        i_out_me             = 'LU'
        i_menge              = ls_lips-lfimg
      IMPORTING
        e_menge              = lv_menge
      EXCEPTIONS
        error_in_application = 1
        error                = 2
        OTHERS               = 3.
    gv_anzlu = gv_anzlu + lv_menge.
  ELSE.
    gv_anzlu = gv_anzlu + ls_lips-lfimg.
  ENDIF.



ENDSELECT.
*Wenn Verkaufsorganisation Apolda ist LDDAT lesen und in gv speichern
SELECT * from likp
  into ls_likp
  where vbeln = gv_deliv
  and vkorg = '4000'.
  gv_abholung = ls_likp-lddat.
ENDSELECT.
CONCATENATE gv_abholung+6 gv_abholung+4(2) gv_abholung(4) into gv_abholung SEPARATED BY '.' .

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


Re: SD Palettenart

Beitrag von Thomas17 (Specialist / 157 / 17 / 14 ) »
Hi,

so wie ich das sehe ergibt sich bei Dir die Palettenart doch erst mit der Kommissionierung.
Weißt Du denn schon vorher auf welche Palette das Ganze soll?
Mich würde an der Ecke zuerst der Prozess interessieren.
Sprich - wann wird die Palette gebildet, beim verpacken,
beim Aufbau der HU?
Steht die VHILM noch nicht beim Druck fest,
dann musst Du sie Dir wohl erst ermitteln...

Wie heißt es so schön: Keine Diagnose durch die Hose...
--> Wie schaut der Prozess aus?

Grüße

Seite 1 von 1

Über diesen Beitrag


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

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor einer Woche von DeathAndPain 2 / 1067
Materialstammerweiterung: Neuer Reiter
vor 3 Wochen von DeathAndPain gelöst 4 / 1765
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47438
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5326

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.

Aktuelle Forenbeiträge

BAPI zur ABSO?
vor einer Woche von DeathAndPain 2 / 1067
Materialstammerweiterung: Neuer Reiter
vor 3 Wochen von DeathAndPain gelöst 4 / 1765
Ermittlung der Arbeitstage (Mosid)
vor 3 Wochen von Radinator 11 / 47438
LSMW-Problem
vor 4 Wochen von DeathAndPain gelöst 6 / 5326