2016-12-21 47 views
7

Podczas debugowania kodu abap znalazłem interesującą konstrukcję kodu.abap multiple method call

method_name(: Parameter1), Parameter2). 

O ile wiem, ten wywołuje metodę dwukrotnie. Pierwszy raz z pierwszym parametrem i drugi raz z drugim. Niestety nie mam pojęcia, jak nazywa się ten konstrukt, więc nie mogę znaleźć żadnej dokumentacji w dokumencie SAP lub w google.

Mogę powiedzieć, że to działa, ale czy to jest oficjalna konstrukcja? Czy działa z więcej niż dwoma parametrami? (np czterokrotnie)

poważaniem, Dirk

+2

Tak, możesz go użyć do uzyskania tylu parametrów, ile potrzebujesz, i możesz nawet umieścić parametry przed dwukropkiem, jeśli mają taką samą wartość dla wszystkich połączeń, np. 'method (value = 'X': name = 'var1'), nazwa 'var2').'. Jest to skrót, jak wyjaśniono w linku podanym w odpowiedzi @ vwegert. –

Odpowiedz

5

Gratulacje, znalazłeś niejasne i na pewno zniechęcać korzystania z tzw chained statement. Używanie tego do wywoływania metod nie jest zalecane, ale ponieważ było to raz dozwolone, SAP będzie bardzo niechętnie usuwać to ponownie ...

+1

Dziękuję bardzo. Niestety jest używany kilka razy w komponencie, który obsługuję. Ale to pomaga zrozumieć. –

1

Gdy kompilator ABAP znajdzie dwukropek, najpierw rozszerza go na ślepo, bez sprawdzania składni (rozwijanie A: B, C, D. w A B. A C. A D.).

I tylko wtedy analizuje składnię każdego z nich - aby stwierdzić, czy jest to przypisanie, wywołanie metody lub cokolwiek innego. Pavel