Skip to content
ERP Preflight

FormDoctor

SAPscript, Smart Forms to Adobe Forms (XDP) migration & syntax validator

Content reviewed September 26, 2026

Engine
FORM_DOCTOR
Domain
Output & Extensibility
Version
3.0.0
Target releases
S4H_2022, S4H_2023, S4HANA_CLOUD_2402, S4HANA_CLOUD_2408
Accepted formats
XML, TEXT

Input contract

Adobe Form XDP template together with the form's runtime data XML and/or the form interface schema (XSD) (as artifacts, or data XML in raw_content + configuration.xdp_content / xsd_content), or a SAPscript / Smart Forms source (XML export or text). Optional configuration: business_source_fields, custom_fields [{name, form_enabled, context_supports_forms}], data_source {name, extensible}, form_template, output_type.

Required input

  • XDP template AND runtime data XML or form interface XSD (binding verification)
  • or a SAPscript / Smart Forms source (legacy form audit)

Finding codes

Finding codes (13)

  • FORM_FIELD_MISSING_IN_XMLDefault severity: CriticalCategory: Data Binding

    Bound field absent from runtime XML

    Remediation: Expose the element in the form's data provider (extend the CDS view / Gateway form data service used by Output Management) or remove the unbacked binding from the XDP template.

  • FORM_FIELD_UNSUPPORTEDDefault severity: CriticalCategory: Data Source Extensibility

    Requested field cannot be supplied to the form

    Remediation: The form data source is not extensible (or the field's business context offers no form usage), so the field cannot reach this form. Use a released form data provider that exposes the value, move the requirement to another output (e.g. email template / side-by-side extension), or drop the field.

  • FORM_LEGACY_SAPSCRIPT_DETECTEDDefault severity: CriticalCategory: Clean Core Extensibility

    Legacy SAPscript detected

    Remediation: SAPscript is not available in ABAP Cloud / S/4HANA Cloud. Redesign the document as an Adobe Form (XDP) using Output Management (BRFplus determination) or use the SAP-delivered form template.

  • FORM_LEGACY_SMARTFORM_DETECTEDDefault severity: CriticalCategory: Clean Core Extensibility

    Legacy Smart Form detected

    Remediation: Smart Forms are unsupported in S/4HANA Cloud Public Edition. Rebuild the layout as an Adobe Form (XDP) on a released form data provider, or adopt the SAP-delivered output form template.

  • FORM_BINDING_NAMESPACE_UNRESOLVEDDefault severity: MajorCategory: Data Binding

    Binding namespace cannot be resolved unambiguously

    Remediation: Declare the namespace prefix used in the binding in the XDP template, qualify the binding so it matches exactly one element of the runtime data, and make the runtime XML use the target namespace of the form interface schema.

  • FORM_BINDING_PATH_MISMATCHDefault severity: MajorCategory: Data Binding

    Field binding path does not match runtime XML

    Remediation: Update the field's Binding > Data Binding (dataRef) in the XDP template to the suggested runtime XML path, or align the form interface / CDS data provider so the element appears at the bound path.

  • FORM_BINDING_PATH_NOT_IN_XSDDefault severity: MajorCategory: Data Binding

    Binding path not declared in the form interface schema

    Remediation: The bound path is not part of the form interface (XSD) the data provider publishes, so the binding is not backed by the interface contract. Re-download the current schema of the form data provider and rebind the field to a declared element, or extend the data source so the element becomes part of it.

  • FORM_BINDING_TYPE_MISMATCHDefault severity: MajorCategory: Layout Formatting

    Field format does not match the bound data type

    Remediation: Align the field's value type / display pattern (Object > Field > Type, Patterns) with the data type and length of the bound element, or change the data provider so it delivers the format the field expects.

  • FORM_FIELD_NEEDS_BADIDefault severity: MajorCategory: Data Source Extensibility

    Field declared by the form interface but not populated

    Remediation: The form data source declares the element but delivers no value for it. Populate it in the data provider's extension point (key-user custom logic / BAdI of the form data provider) or confirm that the value is legitimately empty for this document.

  • FORM_FIELD_NEEDS_CUSTOM_FIELDDefault severity: MajorCategory: Data Source Extensibility

    Requested field does not exist in the business source

    Remediation: Create a custom field in the business context of the document ('Custom Fields' app), enable it for form templates, publish it and bind the form field to the new element.

  • FORM_FIELD_NEEDS_DATA_SOURCE_EXTENSIONDefault severity: MajorCategory: Data Source Extensibility

    Field exists in the business source but not in the form data source

    Remediation: Extend the form data source: enable the (custom) field for form templates in the 'Custom Fields' app (tab 'Form Templates') or add it via data source extension, publish, and re-download the form interface before rebinding the field.

  • FORM_DUPLICATE_BINDINGDefault severity: MinorCategory: Data Binding

    Duplicate field binding

    Remediation: Keep one <bind> per field and bind each data element once per subform; remove or rebind the duplicate in Adobe LiveCycle Designer (Object > Binding).

  • FORM_FIELD_HIDDEN_IN_LAYOUTDefault severity: MinorCategory: Layout Visibility

    Bound field hidden in layout

    Remediation: In Adobe LiveCycle Designer set the field's Presence to 'Visible' (Object > Field) if it must print; otherwise document the intentional suppression.

Input validation codes (5)

  • FORM_ARCHIVE_REJECTEDDefault severity: MajorCategory: INPUT_VALIDATION

    Archive rejected by ingestion safety limits

    Remediation: The archive exceeded the 100:1 expansion ratio, 500 MB total size, entry-count or 2-level nesting limit, or contained path traversal / encrypted members. Upload a flat, unencrypted archive of the export files. No verdict was produced. Re-export the artifact in one of the formats accepted by FormDoctor (XML, TEXT) and re-run the analysis.

  • FORM_INVALID_INPUTDefault severity: MajorCategory: INPUT_VALIDATION

    Artifact does not match the engine input contract

    Remediation: Provide the artifact type documented for this engine; unrelated or structurally invalid documents are rejected. No verdict was produced. Re-export the artifact in one of the formats accepted by FormDoctor (XML, TEXT) and re-run the analysis.

  • FORM_PARSE_ERRORDefault severity: MajorCategory: INPUT_VALIDATION

    Artifact could not be parsed

    Remediation: Fix the syntax error at the reported line/column (or re-export the file unmodified from SAP). No verdict was produced. Re-export the artifact in one of the formats accepted by FormDoctor (XML, TEXT) and re-run the analysis.

  • FORM_PAYLOAD_TOO_LARGEDefault severity: MajorCategory: INPUT_VALIDATION

    Artifact exceeds the size limit

    Remediation: Split the export (e.g. per package, company code or date range) so each upload stays under the service payload limit. No verdict was produced. Re-export the artifact in one of the formats accepted by FormDoctor (XML, TEXT) and re-run the analysis.

  • FORM_INSUFFICIENT_INPUTDefault severity: InfoCategory: INPUT_VALIDATION

    Required input missing

    Remediation: Supply every input the engine's contract marks as required (see the engine catalog entry). No verdict was produced. Re-export the artifact in one of the formats accepted by FormDoctor (XML, TEXT) and re-run the analysis.

Back to the documentation
FormDoctor — ERP Preflight Docs