A Data Division de um programa fonte COBOL descreve, de forma estruturada, todos os dados a serem processados pelo programa objeto; também a relação entre registros físicos e lógicos.
A Data Division é opcional em um programa de origem COBOL.
A Data Division é onde são definidos todos os dados utilizados por um programa. Ele é dividido em tres seções: as seções de FILE, WORKING-STORAGE e LINKAGE.
No cobol para windows ou linux existe uma seção chamada SCREEN onde podemos definir layouts de telas. No Mainframe, isso é feito em mapas BMS junto com o CICS.
A Data Division é dividida em quatro seções:
File Section Descreve dados armazenados externamente (incluindo arquivos de mesclagem de classificação).
Working-Storage Section Descreve dados internos.
Linkage Section Descreve os dados disponibilizados por outro programa. Ele aparece no programa chamado e descreve os itens de dados fornecidos pelo programa chamador e referenciados pelo programa chamado. O programa chamado pode ser um programa aninhado
O objetivo de cada uma das seções é o seguinte:
FILE SECTION: A SEÇÃO DE ARQUIVO é utilizada para definir os arquivos que serão utilizados no programa.
Haverá uma descrição de arquivo (FD) para cada arquivo seguida de uma descrição de registro para cada formato de registro diferente associado ao arquivo. Por exemplo:
No exemplo, o arquivo é denominado FILE-NAME. É o mesmo nome de arquivo que foi especificado na instrução SELECT para o arquivo. O 01 após o FD é chamado de entrada de descrição de registro.
Várias entradas 01 podem ser incluídas se houver mais de um formato de registro aplicável para o arquivo.
Consulte o capítulo Itens de Dados para obter mais informações sobre a descrição do registro e seus itens subordinados.
WORKING-STORAGE SECTION: A SEÇÃO WORKING-STORAGE é usada para definir quaisquer dados que serão usados no programa que não fazem parte de um arquivo. Estes podem incluir, mas não estão limitados a acumuladores, tabelas de pesquisa, formatos de linha de impressão, campos de salvamento, etc.
LINKAGE SECTION: A LINKAGE SECTION é utilizada em um subprograma para definir os dados que serão passados como argumentos para a rotina.
A estrutura dos itens é conforme descrito na seção Itens de dados deste tutorial.
Cada item de 01 nível na SEÇÃO LINKAGE deve ser incluído no cabeçalho PROCEDURE DIVISION USING. Por exemplo:
PROCEDURE DIVISION USING PARAMETER-01,
PARAMETER-02,
PARAMETER-03.
Note : Comma(,) is optional
Neste exemplo, o subprograma teria 3 parâmetros passados chamados PARÂMETRO-1, PARÂMETRO-2 e PARÂMETRO-3. Cada um deles seria definido como um item de 01 nível na SEÇÃO LINKAGE. A ordem em que os itens são definidos na SEÇÃO LINKAGE não é importante.