PROTAP Project tasks planning message (D01B)

This is the standard EDIFACT D01B spec, with 25 loops and 77 segment positions, as OpenEDI JSON, an ediFabric C# template and an ediFabric Native model. To change it for a trading partner, customize it in the EDI Spec Builder.

Loading the spec…
The spec as an OpenAPI 3 schema with x-openedi-* extensions, for ediFabric Native, ediFabric Cloud and the EDI Spec Builder. Download OpenEDI (90 KB) Generate classes
The ediFabric .NET template, class TSPROTAP. It needs the common segments, composites and codes of EDIFACT D01B, one download for every transaction in the version. Download C# (1 KB) Common files (57 KB)
The intermediary model ediFabric Native loads with set_map. Native supports X12 today, and EDIFACT is coming. Download Native (1 KB)

Use the PROTAP spec in your code

ediFabric .NET

Add the C# template and its common files to your project, or reference the template NuGet package, and read PROTAP files into TSPROTAP objects. See ediFabric .NET.

ediFabric Native

Native supports X12 today, and EDIFACT is coming. When it's available, map version D01B to this Native model with set_map to parse PROTAP files to JSON from Python, Java, C or C#. See ediFabric Native.

OpenEDI

Select Customize in Spec Builder to copy the spec under your own name, change it for your partner, and parse files against it in EdiNation, ediFabric Native or ediFabric Cloud. Read about OpenEDI.

Generate PROTAP classes in Python, Java, Node.js, Go, Rust or C

The OpenEDI file describes each PROTAP as JSON. To work with PROTAP data as typed objects, generate classes from the OpenEDI file in your language; the root class is TSPROTAP. The classes keep the loops, segments, lengths and code lists, but not the EDI data formats. Read more in Generate a class from OpenEDI.

Python: datamodel-code-generator. Node.js: openapi-typescript. Java, Go, Rust and C: OpenAPI Generator.

PROTAP structure

Loops and segments of the standard PROTAP, with their usage and maximum repeats.

IDNameUsageMax use
UNHMessage HeaderOptional1
BGMBEGINNING OF MESSAGEMandatory1
GISGENERAL INDICATORMandatory1
DTMDATE/TIME/PERIODMandatory99
Loop RFFREFERENCEMandatory99
RFFREFERENCEMandatory1
IMDITEM DESCRIPTIONOptional9
BIISTRUCTURE IDENTIFICATIONOptional99
Loop GIRRELATED IDENTIFICATION NUMBERSOptional99
GIRRELATED IDENTIFICATION NUMBERSMandatory1
RELRELATIONSHIPOptional1
Loop PNAPARTY IDENTIFICATIONMandatory99
PNAPARTY IDENTIFICATIONMandatory1
ADRADDRESSOptional1
BIISTRUCTURE IDENTIFICATIONOptional1
Loop CTACONTACT INFORMATIONOptional9
CTACONTACT INFORMATIONMandatory1
COMCOMMUNICATION CONTACTOptional9
Loop CEDCOMPUTER ENVIRONMENT DETAILSOptional9
CEDCOMPUTER ENVIRONMENT DETAILSMandatory1
DTMDATE/TIME/PERIODOptional9
Loop EFIEXTERNAL FILE LINK IDENTIFICATIONOptional99
EFIEXTERNAL FILE LINK IDENTIFICATIONMandatory1
CEDCOMPUTER ENVIRONMENT DETAILSOptional1
DTMDATE/TIME/PERIODOptional1
Loop INDINDEX DETAILSOptional999
INDINDEX DETAILSMandatory1
BIISTRUCTURE IDENTIFICATIONOptional1
IMDITEM DESCRIPTIONOptional1
RCSREQUIREMENTS AND CONDITIONSOptional1
Loop LINLINE ITEMOptional9999
LINLINE ITEMMandatory1
BIISTRUCTURE IDENTIFICATIONOptional9
RFFREFERENCEOptional9
IMDITEM DESCRIPTIONOptional9
DTMDATE/TIME/PERIODOptional99
Loop QTYQUANTITYOptional99
QTYQUANTITYMandatory1
DTMDATE/TIME/PERIODOptional99
Loop PRIPRICE DETAILSOptional99
PRIPRICE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
Loop PCDPERCENTAGE DETAILSOptional99
PCDPERCENTAGE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
Loop RTERATE DETAILSOptional99
RTERATE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
Loop MOAMONETARY AMOUNTOptional99
MOAMONETARY AMOUNTMandatory1
DTMDATE/TIME/PERIODOptional99
UNSSECTION CONTROLMandatory1
Loop RFFREFERENCEOptional99
RFFREFERENCEMandatory1
Loop SCCSCHEDULING CONDITIONSOptional999
SCCSCHEDULING CONDITIONSMandatory1
QTYQUANTITYOptional99
DTMDATE/TIME/PERIODOptional999
Loop LINLINE ITEMOptional9999
LINLINE ITEMMandatory1
STSSTATUSOptional1
BIISTRUCTURE IDENTIFICATIONOptional9
RFFREFERENCEOptional9
IMDITEM DESCRIPTIONOptional9
PNAPARTY IDENTIFICATIONOptional9
CCICHARACTERISTIC/CLASS IDOptional9
DTMDATE/TIME/PERIODOptional99
FTXFREE TEXTOptional99
Loop CTACONTACT INFORMATIONOptional9
CTACONTACT INFORMATIONMandatory1
COMCOMMUNICATION CONTACTOptional9
Loop QTYQUANTITYOptional99
QTYQUANTITYMandatory1
DTMDATE/TIME/PERIODOptional99
Loop PCDPERCENTAGE DETAILSOptional99
PCDPERCENTAGE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
Loop MOAMONETARY AMOUNTOptional99
MOAMONETARY AMOUNTMandatory1
DTMDATE/TIME/PERIODOptional99
Loop GIRRELATED IDENTIFICATION NUMBERSOptional9999
GIRRELATED IDENTIFICATION NUMBERSMandatory1
RELRELATIONSHIPOptional1
RCSREQUIREMENTS AND CONDITIONSOptional1
BIISTRUCTURE IDENTIFICATIONOptional9
RFFREFERENCEOptional9
IMDITEM DESCRIPTIONOptional9
DTMDATE/TIME/PERIODOptional99
Loop QTYQUANTITYOptional99
QTYQUANTITYMandatory1
DTMDATE/TIME/PERIODOptional99
Loop PCDPERCENTAGE DETAILSOptional99
PCDPERCENTAGE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
Loop MOAMONETARY AMOUNTOptional99
MOAMONETARY AMOUNTMandatory1
DTMDATE/TIME/PERIODOptional99
Loop RTERATE DETAILSOptional99
RTERATE DETAILSMandatory1
DTMDATE/TIME/PERIODOptional99
CNTCONTROL TOTALOptional99
UNTMessage TrailerOptional1