Podejrzenie kodu zmiennej Smartforms

W tym miejscu możesz zadawać pytania oraz dyskutować na temat modułów BI, SEM, BObj
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

Witam,
odnalazłam w formularzu faktury utworzonej za pomocą smartforms pole które błędnie działa, jednak nie wiem jak "otworzyć" kod który odpowiada za wyświetlanie zmiennej.
Najbardziej prawdopodobne jest pole które oznaczyłam pytajnikiem, ale być może błędnie myślę i otwiera się całkiem gdzieś indziej. Może ktoś mi podpowiedzieć? Bardzo dziękuję z góry.
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (81.75 KiB) Przejrzano 1356 razy
wojtas7
Posty: 1058
Rejestracja: pt mar 14, 2008 12:51 pm
Has thanked: 71 times
Been thanked: 313 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: wojtas7 »

Zobacz czy kod ABAP jest w samym formularzu, a więc powyżej poklikaj po drzewku Definicje globalne tam powinien być kod.
Jeśli tam nie będzie to szukaj po Interfejsie formularza czy czasem kod ABAP generujący informację wyjściową nie wysyła już tej struktury z danymi. Jeśli tam będzie to w NACE zobaczysz program i include, gdzie jest ABAP który uruchamia Smartformsa i generuje wydruk.
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

A więc tak (może razem uda nam się znaleźć ;) ). W NACE mam zdefiniowany program, otwarłam kod ctrl+f i wpisałam nazwę zmiennej czyli IS_INVOICE_DATA-VBDKR-STCEG. Niestety w kodzie programu tej zmiennej nie znalazło. Samego 'stceg' też nie. Jest dużo IS_INVOICE_DATE_VBDKR.... ale inne końcówki :/ (kod około 200 stron wklejony do worda).
Jeżeli chodzi o drzewko i Ustawienia globalne to mam akie dane jak na printscreenach. W 'Procedury form' jakiś krótki kod ale tez nei ma w kodzie nazwy mojej zmiennej :-/

Jakiś pomysł lub może widzicie coś czego ja nie dostrzegam? :)
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (104.68 KiB) Przejrzano 1338 razy
Przechwytywanie.JPG
Przechwytywanie.JPG (119.52 KiB) Przejrzano 1338 razy
Przechwytywanie.JPG
Przechwytywanie.JPG (74.66 KiB) Przejrzano 1338 razy
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

W kodzie programu jedyną zmienną podobną z nazwy jest ta jakl poniżej ale mojej nie ma w kodzie niestety o dziwo...
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (29.27 KiB) Przejrzano 1335 razy
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: dominik.tylczynski »

Oj łatwo nie będzie bez znajomości ABAP, ale spróbujmy.
Formularz SmartForms na zdefiniowany interfejs - Twój ostatni zrzut ekranu. Po wygenerowaniu formularza SmartForms jest tworzona funkcja, którą wywołuje program drukujący. Program jest przypisany do rodzaju informacji wyjściowej w NACE. Interfejs funkcji jest taki sam jak interfejs formularza.
W Twoim przypadku dane o fakturze są przekazywane do SmartForms w parametrze IS_INVOICE_DATA. Zauważ, że typ tej zmiennej jest na Z zatem jest specyficzny dla Twojej instalacji i bez dostępu do Twojego systemu SAP nie ma możliwości sprawdzić jak ten typ jest zdefiniowany. Przypuszczam, że jest to złożona struktura danych.
Dalej, w formularzu SmartForms są oprogramowane procedury, które mogą manipulować danymi przekazanymi z programu drukującego, mogą też czytać dalsze dane. W formularzu masz zadeklarowane dane globalne (przedostatni zrzut ekranu). Te dane mogą być drukowane, ale nie muszą, bo mogą też to być po prostu jakieś zmienne pomocnicze - wszystko tutaj zależy od inwencji programisty - autora formularza.
Na pierwszym zrzucie ekranu widać podstawienia:

Kod: Zaznacz cały

IS_INVOICE-VBELN = GF_TDNAME.
IS_INVOICE-VKORG = IS_VKORG.
Przypuszczam zatem, że gdzieś w kodzie ABAP w formularzu jest podstawienie:

Kod: Zaznacz cały

IS_INVOICE-VBDKR-STCEG = ...
lub

Kod: Zaznacz cały

IS_INVOICE-VBDKR = ...
Obstawiam, że raczej to drugie. Tego podstawienia szukałbym.

Generalnie debuggowanie formularzy SAP SmartForms nie jest trywialną sprawą - zobacz:
Easy Step To Debug a Smartform
How to debug a smartform ?

Jeśli wszystko zawiedzie, to ustawiłbym break-point w funkcji wygenerowanej z formularza, a następnie watch-point na zmiennej IS_INVOICE-VBDKR-STCEG. Wtedy wytropisz miejsce w kodzie, które nadaje wartość tej zmiennej.
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

Oj, no faktycznie skomplikowane. Takich przypisań w kodzie nie znalazłam. Więc będę musiała użyć wyjścia awaryjnego z watch-point'em :)
Dziękuję bardzo za pomoc i również za wyjaśnienie jak te formularze funkcjonują. Akurat mi się trafił na początek dość skomplikowany egzemplarz :wink: teraz zagłębie się w temacie debugowania :) dziękuję i życzę miłego dnia :)
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

A więc mam debugera. Utworzyłam punkt obserwacji na mojej zmiennej (faktycznie ją widzi i tworzy ten punkt obserwacji na nim). Klikam zielony ptaszek.
Następnie żeby wyśledzić dane ładowane do zmiennej to klikam F6? Bo tak klikam to F6 i kliam...i nie daje mi to odpowiedzi tylko skacze po kodzie w najlepsze aż do okna z wydrukiem gdzie podaje się nazwę drukarki i wyświetla się PDF.
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (198.65 KiB) Przejrzano 1328 razy
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: dominik.tylczynski »

Jeśli jesteś już kodzie funkcji wygenerowanej z formularza SmartForms to możesz wyświetlić wartość zmiennej IS_INVOICE-VBDKR-STCEG.
Następnie tworzysz watch-point na tej zmiennej i puszczasz przetwarzanie dalej przyciskiem F8. Przetwarzanie się zatrzyma kiedy wystąpi zmiana wartości zmiennej IS_INVOICE-VBDKR-STCEG. Wtedy zobaczysz co i jak zmienia tę wartość.
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

Dziękuję za informację i odpowiedź :)
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: dominik.tylczynski »

Udało się? W czym był problem?
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

Oj trochę dziwne to było i nie wiem do końca czy znalazłam odpowiedź. Ale zmienna której poszukiwałam na formularzu to NIP EU który raz był na wydruku faktury a raz nie - w zależności od kraju, płatnika itp.
W samym kodzie zmiennej nie znalazłam więc wywnioskowałam że jest ona przekazywana po prostu z danych sap w postaci niezmienionej, nieobrobionej.
Na dokumencie faktury NIP na formatce też był błędny, więc jeszcze w SPRO pogrzebałam i znalazłam reguły ustawiania NIPu gdzie z pustej wartości zmieniłam na wariant B (NIP pobierany w inny sposób) i teraz trochę lepiej działa ale jeszcze nie do końca. Muszę jeszcze przemyśleć jedno pole na formatce faktury bodajżę "kraj docelowy" - czym jest sterowane i na jakiej zasadzie uzupełniane.
Sam formularz jest trochę dla mnie skomplikowany i przy debugowaniu mam trochę pól do wypełnienia, tzw paramtery wejścia i dokładnie nie wiem które paramtery powinnam uzupełnić i jakimi wartościami aby wydruk mi sie otwarł z wartościami i śledził dokument "niepusty". Debugując bez uzupełnienia tych danych nie mogłam sledzić zmian wprowadzanych do tej zmiennej bo jak wiadomo przekazywał null-e.
A wiem dokładnie że byłam w odpowiedniej funkcji generowanej z odpowiedniego smartformsa.
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

I nie rozumiem, czemu zmieniając w SPRO na wariant 'B' czyli NIP pobierany z płatnika, system pole pozostawił puste.
Na płatniku mam uzupełniony NIP więc powinien je wkleić do faktury zgodnie z definicją wariantu 'B' - pobierz nip z 'płatnika'. Zrzut z VF03 z nagłówka dokumentu...
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (25.32 KiB) Przejrzano 1303 razy
greg_hhl
Posty: 145
Rejestracja: wt paź 10, 2017 4:26 pm
Has thanked: 54 times
Been thanked: 86 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: greg_hhl »

Rozwiązałaś problem czy ciągle jeszcze nie?
anetajur
Posty: 234
Rejestracja: pn lut 05, 2018 1:36 pm
Has thanked: 65 times
Been thanked: 21 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: anetajur »

Hej Grag, tak rozwiązałam - pomogłeś mi w innym poście odnośnie tego rozszerzenia user exit :) jeżeli chodzi o samą zmienną to nie była ona powodem błędu aczkolwiek muszę się nauczyć też "docierać" do wartości zmiennych w formularzach bo czesto się na tym zacinam ;)
greg_hhl
Posty: 145
Rejestracja: wt paź 10, 2017 4:26 pm
Has thanked: 54 times
Been thanked: 86 times

Re: Podejrzenie kodu zmiennej Smartforms

Post autor: greg_hhl »

Pisz, pytaj ..... zawsze ktoś pomoże. Nawet przez przypadek ;-)
ODPOWIEDZ