LSMW MM01 Long text BMMH7

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
ODPOWIEDZ
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

LSMW MM01 Long text BMMH7

Post autor: dstusio »

Cześć,
wykonałem LSMW do tworzenia MasterDaty (indeks mat).
Ostatni krok to tzw Long Texty, udało mi się w BMMH7 dodać je do BasicData, PO Text i SD Texts,w wielu językach.
Korzystałem z BEGIN RECORD i mam:
bmmh7-stype = '8'.
bmmh7-tdspras = 'L'.
bmmh7-TDID = 'GRUN'.
transfer_record
Itd.

Problem jest taki że tekst w pliku podzieliłem na 3 rekordy, i chciałbym aby "ładowały" się po kolei tj:
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCCCCCCCC

Na ten moment mimo 3 wpisów w pliku mam AAAAAAAAABBBBBBBCCCCCCCCCCCCCCC.
Kolega programista doradził mi tzw "enter" i wpis:

bmmh7-TDLINE = MM01_MASTERDATA-TDLINE_MM_PL_01.
CONCATENATE MM01_MASTERDATA-TDLINE_MM_PL_01
cl_abap_char_utilities=>newline INTO bmmh7-TDLINE.

Zatem teraz całość wygląda
bmmh7-stype = '8'.
bmmh7-tdspras = 'L'.
bmmh7-TDID = 'GRUN'.
bmmh7-TDLINE = MM01_MASTERDATA-TDLINE_MM_PL_01.
CONCATENATE MM01_MASTERDATA-TDLINE_MM_PL_01
cl_abap_char_utilities=>newline INTO bmmh7-TDLINE.
transfer_record.

Kontrola składni -> OK.

Przy import/ konwersja danych -> ok, są owe "entery".

Przy próbie uploadu:
Trans.00000000001 record 16: record type is not defined
Message MG102.

Wydaje mi się że coś nie tak ze STYPE ale nie wiem za Chiny co dokładnie.
Co robię źle/ co jest nie tak?

Dzieki
Daniel
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Moim zdaniem kolega źle poradził.

Kolejne linie tekstu powinieneś wstawiać jako kolejne rekordy do tablicy BMMH7.
Jeśli rekordy w BMMH7 mają tworzyć kolejne linie długiego tekstu to w TDFORMAT = * (gwiazdka)
Jeśli natomiast masz linię tekstu dłuższą niż 132 znaki (długość pola TDLINE) to powinieneś ją podzielić na dwa rekordy w BMMH7 i TDFORMAT zostawić puste.
Jeśli punkt podziału długiej linii na rekordy w BMMH7 wypadnie na spacji, tę spację powinieneś umieścić na początku kolejnej linii, a nie na końcu poprzedniej. Inaczej ta spacja zostanie skasowana.

Jeśli chcesz zrozumieć dokładniej tę logikę odczytaj długie teksty funkcją READ_TEXT i sprawdź jak jest napełniana tablica LINES.
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

Re: LSMW MM01 Long text BMMH7

Post autor: dstusio »

Jesteś wielki Dominiku. Dziękuję Ci uprzejmie! Poszło:)
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Do usług :wink:
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Możesz też spróbować wykorzystać funkcje z grupy STXKS:
  • CONVERT_ITF_TO_STREAM_TEXT
  • CONVERT_STREAM_TO_ITF_TEXT
  • NOTE_CONVERT_TEXT_TO_ITF
Powinny implementować powyższą logikę, ale nie sprawdzałem ich dokładnie.
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

Re: LSMW MM01 Long text BMMH7

Post autor: dstusio »

Jeszcze kombinuję jak zmniejszyć ilość pól w pliku Excel. Klient ma opis jak wyżej, każdy w 3 językach. Więc metodą pole=linia, wychodzi mi 27 pól tekstowych dla basic text, po i sd. Dużo i nie podoba mi się to. Jakbym był userem chciałbym wpis w komórce Excel:

AAAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCCCCCC

I żeby analogicznie wklejało się to w 3 linie. Miałbym wtedy 9 pól tekstowych, zamiast 27...
Działam dalej:)

Daniel
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Zobacz przede wszystkim dokumentację do importu długich tekstów w LSMW: Special Case: Migration of Long Texts

Po drugie zorganizowałbym dane w pliku w wierszach, a nie w kolumnach - każdą linię tekstu wstawiłbym w oddzielny wiersz w pliku. Dzięki temu struktura pliku będzie bardziej przejrzysta i nie musisz definiować dużej ilości kolumn.

Migrowałbym również każdy tekst oddzielnie - będzie łatwiej.
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

Re: LSMW MM01 Long text BMMH7

Post autor: dstusio »

Poddaję się, nie wiem jak ugryźć powyższy przypadek.

@Dominiku, jeszcze raz prośba o poradę.
Dzięki
Daniel
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Szybko się poddałeś - już po 4 minutach, to chyba rekord :wink:

Tutaj jest całkiem dobrze rozpisany przykład importu tekstu sprzedaży: Example: Material Sales Texts
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

Re: LSMW MM01 Long text BMMH7

Post autor: dstusio »

A wiesz że odpowiadałem nie widząc tamtego posta - dzięki. Nie odświeżyłem strony a napisałem kolejny wątek:). My fault.
dominik.tylczynski
Posty: 8356
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1924 times
Been thanked: 1477 times
Kontakt:

Re: LSMW MM01 Long text BMMH7

Post autor: dominik.tylczynski »

Napisz proszę czy i jak udało się rozwiązać temat.
dstusio
Posty: 71
Rejestracja: czw sty 12, 2012 12:54 pm
Has thanked: 6 times
Been thanked: 6 times

Re: LSMW MM01 Long text BMMH7

Post autor: dstusio »

Cześć, przepraszam, umknęło mi:). Zostawiłem tekst w kolumach, bez dodatkowych kombinacji, generalnie na życzenie Klienta. Także 1 komórka = 1 linia tekstu.

Temat zamknięty i Klient content.

Dzięki i wesołych świąt!
ODPOWIEDZ