Program importujący języka COBOL importuje struktury danych języka COBOL z programów napisanych w tym języku (rozszerzenie .cbl, .ccp lub .cob) i przedstawia je aplikacji (klientowi importu) w postaci zasobu EMF metamodelu CAM (Common Application Metamodel).
Zadaniem programu importującego języka COBOL jest przedstawienie struktur danych języka COBOL w modelu danych (CAM) - zasobie EMF. Za wydobycie informacji z zasobu i wykorzystanie ich do założonych celów odpowiedzialni są dostawcy narzędzi. Program importujący jest w stanie zgłaszać wszelkie błędy składniowe występujące w sekcji środowiska i sekcji danych, pomijając komunikaty z sekcji procedur.
Korzystanie z programu importującego języka COBOL
Poniżej wymieniono wymagania i ograniczenia dotyczące programu importującego języka COBOL:
- Zakłada się, że plik jest kompletnym programem w języku COBOL, jeśli ma on rozszerzenie .cbl, .ccp lub .cob.
- Jeśli plik ma rozszerzenie .cpy, przyjmuje się, że jest to plik kopii. Jeśli plik jest elementem
księgi kopii, wówczas powinien on składać się tylko z jednej lub większej liczby struktur danych 01 lub z definicji podstawowego elementu danych 01 lub 77.
- Jeśli element księgi kopii zawiera dowolne inne elementy języka COBOL, wówczas użytkownik musi dostarczyć program opakowujący zawierający element kopii i nadać mu rozszerzenie .cbl, .ccp lub .cob. Program opakowujący musi być poprawny składniowo (jeśli wystąpią błędy, powinny zostać wyświetlone przez program importujący na liście problemów).
- Program opakowujący należy dostarczyć zawsze, gdy element kopii zawiera dowolny z następujących elementów:
- odwołanie do znaku symbolicznego
- edytowana numerycznie sekcja obrazów zawierająca symbol waluty, który wymaga klauzuli CURRENCY SIGN
- przecinek w sekcji PICTURE pełniący rolę separatora dziesiętnego
Uwaga: W tych przypadkach w programie opakowującym, który udostępnia definicje tych elementów, należy utworzyć akapit SPECIAL-NAMES.
Oto przykład programu opakowującego: ex.cbl
- Programy zagnieżdżone nie są obsługiwane.
- Księgi kopii są obsługiwane pod warunkiem, że znajdują się one w tym samym miejscu, co główny plik źródłowy (który sam może być księgą kopii lub kompletnym programem).
- Aby zyskać możliwość importowania źródeł w języku COBOL, w których występują zależności od ksiąg kopii umieszczonych w innych katalogach, niż główny plik źródłowy, należy dodać te katalogi w preferencjach języka COBOL:
- Wybierz opcje Okno > Preferencje > Importery > COBOL > SYSLIB.
- Kliknij przycisk Dodaj.
- Użyj przycisku Przeglądaj, aby znaleźć katalog, który ma zostać dodany.
- Kliknij przycisk Usuń, aby usunąć wszystkie niepotrzebne katalogi, a następnie użyj przycisków Przenieś w górę oraz Przenieś w dół, aby zmienić kolejność, w jakiej program importujący języka COBOL przegląda poszczególne katalogi w poszukiwaniu ksiąg kopii.

- Operacja importowania nie powiedzie się, jeśli w sekcji środowiska (tylko w przypadku kompletnych programów) lub sekcji danych występują błędy składniowe.
- Obecnie obsługa klauzuli value wygląda następująco:
- Każdy element danych z sekcji WORKING-STORAGE lub LOCAL-STORAGE z określoną klauzulą VALUE otrzymuje obiekt COBOLElementInitialValue. Jeśli literał zdefiniowany w klauzuli VALUE jest stałą
symboliczną, wówczas generowane są następujące atrybuty:
Stała symboliczna |
ValueKind |
initVal |
SPACE |
spaces |
" " |
QUOTE |
quotes |
""" lub "'" |
ZERO |
zero_value |
"0" |
HIGH-VALUE |
high_value |
"0" ze względu na brak obsługi |
LOW-VALUE |
low_value |
"0" ze względu na brak obsługi |
NULL |
null |
"0" |
- Jeśli literał zdefiniowany w klauzuli VALUE jest znakiem alfanumerycznym, DBCS, narodowym lub symbolicznym, wówczas atrybutowi valueKind nadawana jest wartość string_value, zaś faktyczna wartość literału umieszczana jest w atrybucie initVal. W przypadku literałów alfanumerycznych i DBCS ich wartość jest najpierw konwertowana na stronę kodową
UTF-16, a następnie na UTF-8. W przypadku literałów narodowych wartość konwertowana jest na stronę kodową UTF-8. Z tego względu wartość atrybutu initVal jest zawsze zapisana w formacie UTF-8.
Jeśli wartość literału zawiera znaki, których stosowanie w dokumentach XML jest niedozwolone (np. od X'00' do X'1F'), wówczas
są one zastępowane znakiem '?'.
- Brak obsługi elementów danych poziomu 66.
- Obsługa języka SQL: Program importujący ignoruje wszystkie instrukcje SQL za wyjątkiem instrukcji SQL INCLUDE. Instrukcja EXEC SQL INCLUDE będzie traktowana tak, jak instrukcja COPY.
Wejście
Aby operacja importowania pliku w języku COBOL do projektu powiodła się, musi to być kompletny program lub księga kopii w języku COBOL. Podczas importowania plików istotne są ich rozszerzenia. Pliki z nieprawidłowymi rozszerzeniami powodują zgłoszenie błędu programu importującego.
Wyjście
Po pomyślnym zaimportowaniu źródeł przez program importujący języka COBOL zwracany jest zasób EMF (model danych CAM).