Формат тетради COBOL | Документация MuleSoft
Тип MIME: application/flatfile
ID: flatfile
Копия COBOL — это тип плоского файла, который описывает расположение записей и полей в файле данных COBOL.
Компонент Transform Message предоставляет настройки для обработки формата тетради COBOL. Например, вы можете импортировать определение COBOL в компонент Transform Message и использовать его для своих преобразований Copybook.
Копия COBOL в DataWeave поддерживает файлы размером до 15 МБ, а требования к памяти составляют примерно 40 к 1. Например, для обработки файла размером 1 МБ требуется до 40 МБ памяти, поэтому важно учитывать это требование к памяти в сочетании с вашими потребностями TPS в больших файлах тетрадей. Это не точная цифра; значение может варьироваться в зависимости от сложности инструкций отображения. |
Импорт определения тетради с прописями
При импорте определения Copybook компонент Transform Message преобразует определение в схему плоского файла, на которую можно ссылаться с помощью свойства schemaPath
.
Чтобы импортировать определение тетради:
Щелкните правой кнопкой мыши входную полезную нагрузку в компоненте Transform в Studio и выберите Set Metadata , чтобы открыть диалоговое окно Set Metadata Type.
Обратите внимание, что вам необходимо создать тип метаданных, прежде чем вы сможете импортировать тетрадь
определение.Укажите имя для метаданных тетради, например
тетрадь
.Выберите тип тетради из раскрывающегося меню Введите .
Импортируйте файл определения вашей тетради.
Щелкните Выбрать.
Рис. 1. Импорт файла определения тетради
Например, предположим, что у вас есть файл определения тетради
( mailing-record.cpy
), который выглядит так:
01 ЗАПИСЬ НА ПОЧТУ. 05 НАЗВАНИЕ КОМПАНИИ ИЗОБРАЖЕНИЕ X(30). 05 КОНТАКТЫ. 10 ПРЕЗИДЕНТ. 15 ФАМИЛИЯ КАРТИНКИ X(15). 15 ИМЯ КАРТИНКИ X(8). 10 VP-МАРКЕТИНГ. 15 ФАМИЛИЯ КАРТИНКИ X(15). 15 ИМЯ КАРТИНКИ X(8). 10 АЛЬТЕРНАТИВНЫЙ КОНТАКТ. 15 ФОТО ЗАГОЛОВКА X(10). 15 ФАМИЛИЯ КАРТИНКИ X(15). 15 ИМЯ КАРТИНКИ X(8). 05 АДРЕС PIC X(15). 05 ГОРОДСКОЕ ИЗОБРАЖЕНИЕ X(15). 05 СОСТОЯНИЕ РИСУНОК XX. 05 ПОЧТОВЫЙ РИСУНОК 9(5).
Определения тетради всегда должны начинаться с записи
01
. Отдельная запись
тип генерируется для каждого определения01
в вашей тетради (должно быть
по крайней мере одно определение01
для тетради, поэтому добавьте одно, используя
произвольное имя в начале тетради, если оно отсутствует). Если есть
несколько определений01
в файле тетради, вы можете выбрать, какие
определение для использования в преобразовании из раскрывающегося списка.- Формат
COBOL требует, чтобы в определениях использовались только столбцы 7–72 каждой строки. Данные
в столбцах 1-5 и после столбца 72 игнорируется процессом импорта. Колонка 6
является маркером продолжения строки.
При импорте схемы компонент Transform преобразует файл тетради
в плоскую файловую схему, которую он хранит в папке src/main/resources/schema
.
вашего проекта Mule. В формате плоского файла приведенное выше определение тетради выглядит
вот так:
форма: ТЕТРАДИ id: 'РАССЫЛКА-ЗАПИСЬ' ценности: - {имя: 'ИМЯ-КОМПАНИИ', тип: строка, длина: 30} - название: 'КОНТАКТЫ' ценности: - имя: 'ПРЕЗИДЕНТ' ценности: - {имя: 'LAST-NAME', тип: строка, длина: 15} - {имя: 'FIRST-NAME', тип: строка, длина: 8} - название: "ВП-МАРКЕТИНГ" ценности: - {имя: 'LAST-NAME', тип: строка, длина: 15} - {имя: 'FIRST-NAME', тип: строка, длина: 8} - название: 'АЛЬТЕРНАТИВНЫЙ КОНТАКТ' ценности: - {имя: 'TITLE', тип: строка, длина: 10} - {имя: 'LAST-NAME', тип: строка, длина: 15} - {имя: 'FIRST-NAME', тип: строка, длина: 8} - {имя: 'АДРЕС', тип: строка, длина: 15} - {имя: 'ГОРОД', тип: строка, длина: 15} - {имя: 'СОСТОЯНИЕ', тип: строка, длина: 2} - { имя: 'ZIP', тип: целое число, длина: 5, формат: { выравнивание по ширине: НУЛИ, знак: БЕЗ ЗНАКА } }
После импорта тетради можно использовать свойство schemaPath
для ссылки на связанный плоский файл с помощью директивы output
. Например:
выходное приложение/плоский файл schemaPath="src/main/resources/schemas/mailing-record.ffd"
Поддерживаемые функции тетради
Не все функции тетради поддерживаются форматом тетради COBOL в
DataWeave. В целом, формат поддерживает самые распространенные способы использования и простые
моделей, в том числе:
ИСПОЛЬЗОВАНИЕ DISPLAY, BINARY (COMP), COMP-5 и PACKED-DECIMAL (COMP-3).
Ограничения кодировки символов см. в разделе Кодировки символов.Предложения PICTURE для числовых значений, состоящих только из:
‘9’ – Одна или несколько позиций цифровых символов
‘S’ – Одна необязательная позиция символа знака, ведущая или замыкающая
‘V’ – Одна необязательная десятичная точка
‘P’ – Одна или несколько десятичных позиций масштабирования
Предложения PICTURE для буквенно-цифровых значений, состоящих только из позиций символов «X»
Количество повторений для символов «9», «P» и «X» в предложениях PICTURE
(как в9(5)
для 5-значного числового значения)ПРОИСХОДИТ В ЗАВИСИМОСТИ ОТ
свойства controlVal
в схеме. Обратите внимание, что если
управляющее значение вложено в содержащую структуру, вам необходимо вручную
изменить сгенерированную схему, чтобы указать полный путь для значения в
форма “контейнер.значение”.Предложение REDEFINES (используется для предоставления разных представлений одной и той же части
запись данных – см. подробности в разделе ниже)
Неподдерживаемые функции включают:
Пункты PICTURE с буквенно-цифровым редактированием
Предложения PICTURE с числовым редактированием, включая все формы вставки, замены и подавления нулей
Специальные номера уровней:
Уровень 66 — Альтернативное имя для поля или группы
Уровень 77 – Независимый элемент данных
Уровень 88 — Имена условий (эквивалентно перечислению значений)
Предложение SIGN на уровне группы (поддерживается только для элементарных элементов с предложением PICTURE)
ИСПОЛЬЗОВАНИЕ COMP-1 или COMP-2 и предложения на уровне группы (поддерживается только для элементарных элементов с предложением PICTURE)
Предложение VALUE (используется для определения значения элемента данных или условного имени из
литерал или другой элемент данных)Предложение SYNC (используется для выравнивания значений в записи)
REDEFINES Поддержка
REDEFINES облегчает динамическую интерпретацию данных в записи. Когда вы импортируете
тетрадь с REDEFINES присутствует, сгенерированная схема использует специальную группировку
с именем ‘*’ (или ‘*1’, ‘*2’ и т. д., если присутствует несколько групп REDEFINES
на одном уровне), чтобы объединить все различные интерпретации. Вы используете это
специальное групповое имя в ваших выражениях DataWeave точно так же, как вы используете любое другое
название группировки.
Использование групп REDEFINES имеет более высокие накладные расходы, чем обычные группы тетрадей,
поэтому MuleSoft рекомендует по возможности удалять REDEFINES из своих тетрадей.
прежде чем импортировать их в Studio.
Кодировки символов
Поддерживаются только варианты использования BINARY (COMP), COMP-5 или PACKED-DECIMAL (COMP-3)
с однобайтовыми кодировками символов, которые используют весь диапазон 256 потенциальных
коды символов. UTF-8 и другие кодировки переменной длины не поддерживаются для
эти варианты использования (потому что они не однобайтовые), и ASCII также не поддерживается
(потому что он не использует весь диапазон). Поддерживаемые кодировки символов включают
ИСО-8859-1 (расширение ASCII до полных 8 бит) и другие варианты 8859 и
EBCDIC (IBM037).
REDEFINES требует, чтобы вы использовали кодировку символов один байт на символ для
данные, но можно использовать любую кодировку с одним байтом на символ, если только BINARY
(COMP), COMP-5 или PACKED-DECIMAL (COMP-3) включены в данные.
Распространенные проблемы с импортом тетрадей
Наиболее распространенная проблема с импортом тетрадей — несоблюдение кода COBOL.
стандарт для областей входных строк. Анализ импорта тетради игнорирует
содержимое столбцов 1-6 каждой строки и игнорирует все строки со знаком «*»
(звездочка) в столбце 7. Он также игнорирует все, что находится за пределами столбца 72 в каждой строке.
Это означает, что все ваши фактические определения данных должны находиться в столбцах 8.
через 72 входных строки.
Вкладки во входных данных не раскрываются, так как не существует определенного стандарта для вкладок
позиции. Каждый символ табуляции рассматривается как один пробел, когда
подсчет входных столбцов тетради.
Отступ игнорируется при обработке тетради, только номера уровней
трактуются как значимые. Обычно это не проблема, но это означает, что
тетради могут быть приняты к ввозу, даже если они не принимаются
компиляторы Кобола.
В результате импорта тетрадей могут появиться как предупреждения, так и ошибки.
Предупреждения обычно сообщают о неподдерживаемых или нераспознанных функциях, которые могут или
может быть не значительным. Ошибки — это уведомления о проблеме, которые означают
сгенерированная схема (если есть) не будет полностью точным представлением
тетрадь. Вам следует просмотреть все сообщения об ошибках и предупреждениях и принять решение о
соответствующую обработку, которая может заключаться в простом принятии схемы как
созданной, изменяя входную тетрадь или изменяя сгенерированную схему.
Свойства конфигурации
DataWeave поддерживает следующие свойства конфигурации для этого формата.
Свойства чтения
DataWeave принимает свойства, предоставляющие инструкции для чтения входных данных в этом формате.
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
| | | Ошибка, если отсутствует требуемое значение. |
| | | Символ заполнения, используемый для представления отсутствующих значений. Чтобы активировать параметр, отличный от значения по умолчанию, установите
|
| | | Ожидаемое разделение между строками/записями:
Обратите внимание, что схемы с типом |
| | | Определение схемы. Расположение на локальном диске файла схемы, используемого для анализа ввода. |
| | | Идентификатор сегмента в схеме для схем фиксированной ширины или схем тетрадей (требуется только при анализе одного определения сегмента/записи и если схема включает несколько определений сегментов). |
| | | Идентификатор структуры в схеме для схем плоских файлов (требуется только при разборе определения структуры и если схема включает несколько определений структуры) |
| | | Сократить тетрадь COBOL в зависимости от значений до используемой длины. Допустимые значения: |
| | | По умолчанию средства чтения и записи неструктурированных файлов используют пробелы для отсутствующих символов и игнорируют параметр |
| | | Используйте строгую форму |
Свойства устройства записи
DataWeave принимает свойства, предоставляющие инструкции для записи выходных данных в этом формате.
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
| | | Когда схема содержит элементы типа Binary или Packed, опция |
| | | Размер буфера записи. |
| | | Если установлено значение |
| | | Кодировка, используемая этим модулем записи, |
| | | Ошибка при отсутствии требуемого значения. |
| | | Символ заполнения, используемый для представления отсутствующих значений. Чтобы активировать параметр, отличный от значения по умолчанию, используйте
|
| | Системное свойство | Разрыв строки разделителя записей. Допустимые значения:
Обратите внимание, что в версиях Mule 4. 0.4 и более поздних используется только как разделитель |
| | | Определение схемы. Путь к файлу схемы |
| | | Идентификатор сегмента в схеме для схем фиксированной ширины или схем тетрадей (требуется только при написании определения одного сегмента/записи и если схема включает несколько определений сегментов). |
| | | Идентификатор структуры в схеме для схем плоских файлов (требуется только при написании определения структуры и если схема включает несколько определений структуры) |
| | | Обрезать строковые значения, превышающие длину поля, путем усечения завершающих символов. Допустимые значения: |
| | | Указывает, превышают ли значения обрезки ширину поля. Допустимые параметры: |
| | | Сократить тетрадь COBOL в зависимости от значений до используемой длины. Допустимые значения: |
| | | По умолчанию средства чтения и записи неструктурированных файлов используют пробелы для отсутствующих символов и игнорируют настройку свойства |
| | | Используйте строгую форму |
Поддерживаемые типы MIME
Формат тетради COBOL поддерживает следующие типы MIME.
Тип MIME |
---|
|
Ввод тетради
— документация Hitachi Vantara Lumada и Pentaho
- Последнее обновление
- Сохранить как PDF
На шаге Copybook Input считываются двоичные файлы данных
которые сопоставляются файлом определения тетради фиксированной длины COBOL. Определение COBOL и двоичный код
файлы используются в ИТ-сценариях, которые включают данные, хранящиеся на мэйнфреймах. Вы можете извлечь
двоичные файлы данных и файлы определений с мейнфрейма для преобразования данных и
анализа и избегайте использования циклов мейнфрейма для сложных задач анализа данных.
ЗапискаТетрадь
Шаг ввода выполняет автономное статическое извлечение данных в двоичном формате.
формат. Если вам нужно только выполнить внедрение метаданных ETL, используйте шаг Чтение метаданных из тетради. Вы не обязаны использовать оба
шаги тетради в том же преобразовании. Дополнительные сведения см. в разделе «Прописи в PDI».
Прежде чем начать
Ознакомьтесь с этими предварительными условиями перед использованием
шаг ввода тетради.
- Для PDI в
обрабатывать файлы двоичных данных, необходимо сначала загрузить как файл определения тетради, так и
двоичные файлы данных из среды мэйнфрейма. Например, вы можете использовать FTP или
SFTP-сервер для загрузки файлов в промежуточную область, доступную из PDI. Вы также можете использовать путь SFTP VFS для подключения и чтения данных непосредственно из
мейнфрейм во время выполнения. - Файл двоичных данных должен оставаться в двоичном формате при использовании в качестве входных данных для этого
шаг. Если вы используете FTP для загрузки файлов, убедитесь, что файл данных не
преобразованы в ASCII. - Этот шаг работает только с записями COBOL фиксированной длины. Типы записей переменных
например,VB
,VBS
,ПРОИСХОДИТ В ЗАВИСИМОСТИ ОТ
не поддерживаются. - Ваш администратор мэйнфрейма может предоставить более подробную информацию о
определения и структуры файла тетради для конкретной среды, которые требуются для этого шага
чтение бинарных данных.
Общие
Введите следующую информацию в
поле шага преобразования.
- Имя шага: Указывает уникальное имя шага ввода тетради на холсте. Вы можете настроить имя или
оставьте его по умолчанию.
Опции
Шаг ввода тетради
включает настройки для поиска файлов для чтения, таблицу для определения полей данных на
выходной поток PDI и дополнительные
параметры.
Вкладка «Ввод»
Вкладка «Ввод» содержит следующие разделы.
Источник
Эти параметры определяют расположение двоичного файла
данные
.
Опция | Описание |
Предопределенный файл | Выберите этот параметр, чтобы указать путь к файлу двоичных данных, содержит данные, которые вы хотите прочитать в потоке PDI. Ты можешь введите любой путь VFS непосредственно в поле File, включая любой переменные, или вы можете нажать кнопку Обзор, чтобы найти двоичный файл данных. |
Файл, указанный в поле | Выберите этот параметр, чтобы прочитать имена двоичных файлов из имя поля на предыдущем шаге. Выберите имя поля из выпадающего списка список. |
Данные уже загружены в двоичный файл поле | Выберите эту опцию, если двоичные данные передаются на шаг из двоичное поле в потоке PDI. Выберите шаг, генерирующий бинарное поле, из выпадающий список. Вы можете использовать эту опцию для подготовки вывода записей другим Шаг ввода тетради. Используя этот метод, вы можете выборочно обрабатывать поля и избегать ошибок преобразования в файлах определений, которые включить ПЕРЕОПРЕДЕЛЕНИЯ. См. запись в магазине как параметр бинарного поля на вкладке «Параметры». |
Схема
Эти параметры определяют расположение файла определения тетради и включают сопоставление
опции для бинарных файлов данных.
Опция | Описание |
Путь к файлу тетради COBOL | Укажите путь к файлу определения тетради. Ты можешь введите любой путь к файлу VFS или SFTP или нажмите «Обзор», чтобы открыть браузер системных файлов. После выбора файла нажмите «Подтвердить». чтобы убедиться, что файл определения доступен и может быть проанализирован. |
Строковая структура COBOL Copybook | Укажите строковую структуру файла определения.
|
Бинарный
Формат
Используйте эти параметры для описания двоичного формата выбранного файла.
Опция | Описание |
Исходная архитектура | Выберите машинную архитектуру исходных файлов двоичных данных. Значения:
|
Имя исходного набора символов | Выберите набор кодировок символов двоичного файла данных. EBCDIC мейнфрейма обычно кодируется с использованием символа IBM037 или cp1047. Для получения дополнительной информации о наборах символов и их |
Упакованный десятичный знак (COMP-3) соглашение | Выберите, как COMP-3 Packed Decimals анализируется из двоичных данных как это относится к соглашению о знаках. Для данного поля, если проверка происходит и не проходит, во время выполнения произойдет ошибка преобразования. Дополнительные сведения см. в разделе Использование обработки ошибок.
|
Вкладка «Вывод»
В таблице на вкладке «Вывод» содержится подробная информация о
поля, которые считываются из двоичных данных, и то, как эти поля помещаются в поток PDI в качестве вывода из
шаг.
Вы можете заполнить таблицу, используя либо Get Fields
или Получить поля с командами родительских групп. Эти команды извлекают
непосредственно из файла определения тетради, выбранного на вкладке «Ввод».
Используйте команду «Получить поля с родительскими группами», если вы хотите включить
организационные данные более высокого уровня из файла определения тетради, в котором отсутствует
ИЗОБРАЖЕНИЕ.
Чтобы передать поля ввода в выходной поток PDI, выберите
поля. Снимите этот флажок, чтобы исключить поля ввода из
Выходной поток PDI.
Примечание. Этот параметр доступен только в том случае, если вы выбрали Файл, определенный в
вариант поля или данные, уже загруженные в двоичный файл
поле, расположенное в разделе «Источник» этого
вкладку «Ввод» шага.
Выходная таблица содержит следующие столбцы.
Столбец | Описание |
Имя | Имя поля в выходном потоке PDI. Вы можете пересмотреть или при необходимости обновите имя этого поля. |
Путь | Полный путь к столбцу двоичных данных в тетради с прописями файл определения. ПримечаниеЭто поле |
Тип назначения | Тип данных PDI столбца, отображаемый из определения столбца. Примечание. Это поле нельзя редактировать. это
|
Преобразование | Этот тип данных считывается из исходных данных для данного поля.
|
Вкладка «Параметры»
Используйте эту вкладку для определения параметров выходного потока PDI.
Выходная запись
Информация
Используйте этот раздел для указания сведений о записях для вывода.
Опция | Описание |
Сохранить запись как двоичное поле | Укажите дополнительное поле вывода для хранения двоичных байтов, составить запись, которая в данный момент обрабатывается. Вы можете использовать сохраненное двоичное поле как ввод для полей данных ниже по течению от тетради Входной шаг. |
Создать поле с номером записи | Указать дополнительное выходное поле, содержащее номер записи внутри файла. Для определений записей фиксированной длины умножение этого числа на фиксированный размер записи дает смещение записи во входном файле. Это поле сбрасывается на ноль при чтении нового файла данных. Кроме того, счетчик специфичен для копия шага, поэтому изменяется на Изменить количество копий на Параметр «Пуск» может привести к неожиданным результатам. |
Создать поле с контрольной суммой записи | Указать дополнительное поле вывода для содержания шестнадцатеричной строки представление контрольной суммы sha1 байта исходной записиданные. ПримечаниеЭта опция |
Преобразование
ошибки
Используйте этот раздел, чтобы указать, как обрабатывать ошибки во время преобразования.
Игнорировать ошибки преобразования
Установите этот флажок, чтобы регистрировать несколько сообщений об ошибках преобразования, например
искаженные записи, неправильные строки вложений, неправильное количество полей и преждевременная строка
заканчивается. Ошибки регистрируются в формате объекта JSON в одной строке PDI. Дополнительные сведения о формате см. в разделе Использование обработки ошибок.Снимите этот флажок, если вы хотите, чтобы ошибки преобразования исходного двоичного файла
файлы, чтобы остановить трансформацию.
Использовать обработку ошибок
Объект JSON помещается в поле описания ошибки в строке ошибки.
Обработка ошибок должна быть включена на шаге, чтобы зафиксировать ошибку.
столбцы и описания. На холсте щелкните правой кнопкой мыши тетрадь
Введите шаг и выберите Обработка ошибок, чтобы открыть
Окно настройки обработки ошибок шага и настройте
имена столбцов вывода ошибок. См. Использование
Меню трансформации для деталей.
В следующей таблице подробно описан формат объекта JSON для выходного потока ошибок.
Ключ | Тип | Пример | Описание |
Запись | ИЗОБРАЖЕНИЕ ИЗОБРАЖЕНИЯ. шаг. | ||
convert | String | BigNumberColumnConverter | Класс преобразователя, вызвавший ошибку. |
исключение | Строка | RecordException | Класс исключения ошибки. |
сообщение | Строка | Неверный знак в поле: OPEN-YEAR | Текст сообщения об ошибке, если оно существует. |
fieldName | String | OPEN-YEAR | Имя поля, в котором возникла ошибка. |
позиция | Целое число | 22 | Позиция поля. |
длина | Целое число | 3 | Длина поля. |
значение | Строка | 404040 | Значение, считанное как шестнадцатеричная строка. |
recordHash | String | 240c992c3aaebccf6dc0e99a4ed1a447e4811bed | Контрольная сумма записи, полученная из ввода тетради шаг. |