Podejrzenie kodu zmiennej Smartforms
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Podejrzenie kodu zmiennej Smartforms
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.
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.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
- Posty: 1101
- Rejestracja: pt mar 14, 2008 12:51 pm
- Has thanked: 72 times
- Been thanked: 334 times
Re: Podejrzenie kodu zmiennej Smartforms
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.
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.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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?

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?

Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
W kodzie programu jedyną zmienną podobną z nazwy jest ta jakl poniżej ale mojej nie ma w kodzie niestety o dziwo...
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
- Posty: 8647
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2065 times
- Been thanked: 1549 times
Re: Podejrzenie kodu zmiennej Smartforms
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:
Przypuszczam zatem, że gdzieś w kodzie ABAP w formularzu jest podstawienie: lub 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.
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.
Kod: Zaznacz cały
IS_INVOICE-VBDKR-STCEG = ...
Kod: Zaznacz cały
IS_INVOICE-VBDKR = ...
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.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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
teraz zagłębie się w temacie debugowania
dziękuję i życzę miłego dnia 

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



-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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.
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.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
- Posty: 8647
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2065 times
- Been thanked: 1549 times
Re: Podejrzenie kodu zmiennej Smartforms
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ść.
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ść.
-
- Posty: 8647
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 2065 times
- Been thanked: 1549 times
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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.
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.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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...
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...
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
- Posty: 234
- Rejestracja: pn lut 05, 2018 1:36 pm
- Has thanked: 65 times
- Been thanked: 21 times
Re: Podejrzenie kodu zmiennej Smartforms
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 


-
- Posty: 153
- Rejestracja: wt paź 10, 2017 4:26 pm
- Has thanked: 56 times
- Been thanked: 89 times
Re: Podejrzenie kodu zmiennej Smartforms
Pisz, pytaj ..... zawsze ktoś pomoże. Nawet przez przypadek 
