
com.sap.cloud.sdk.s4hana.datamodel.bapi.structures.Header Maven / Gradle / Ivy
/*
* Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.s4hana.datamodel.bapi.structures;
import java.time.LocalDate;
import javax.annotation.Nullable;
import com.sap.cloud.sdk.result.ElementName;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.AccountingDocumentNumber;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.AccountingPrinciple;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.BillingCategory;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.CancelObjectKey;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.CompanyCode;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ComponentInAccInterface;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.DocumentStatus;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.DocumentType;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.EcsEnvironment;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.FiscalPeriod;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.InvoiceRefObjectKey;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.LogicalSystemOfSourceDocument;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ObjectKey;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ReferenceDocumentNumber;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ReferenceDocumentNumber35;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ReferenceTransaction;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.UserName;
import com.sap.cloud.sdk.s4hana.serialization.ErpBoolean;
import com.sap.cloud.sdk.s4hana.types.Year;
import lombok.Builder;
import lombok.Data;
/**
* Header
*
* Structure: BAPIACHE09
*
*
*/
@Builder
@Data
public class Header {
/**
* Field name: ACC_PRINCIPLE
*
* Type element: ACCOUNTING_PRINCIPLE
* Domain name: ACCOUNTING_PRINCIPLE
* Internal type: CHAR
* Description: Accounting Principle
* Max length: 4
*
*
*/
@ElementName("ACC_PRINCIPLE")
@Nullable
private AccountingPrinciple accPrinciple;
/**
* Field name: AC_DOC_NO
*
* Type element: BELNR_D
* Domain name: BELNR
* Internal type: CHAR
* Description: Accounting Document Number
* Max length: 10
*
*
*/
@ElementName("AC_DOC_NO")
@Nullable
private AccountingDocumentNumber acDocNo;
/**
* Field name: BILL_CATEGORY
*
* Type element: FKTYP
* Domain name: FKTYP
* Internal type: CHAR
* Description: Billing Category
* Max length: 1
*
*
*/
@ElementName("BILL_CATEGORY")
@Nullable
private BillingCategory billCategory;
/**
* Field name: BUS_ACT
*
* Type element: GLVOR
* Domain name: CHAR4
* Internal type: CHAR
* Description: Business Transaction
* Max length: 4
*
*
*/
@ElementName("BUS_ACT")
@Nullable
private String busAct;
/**
* Field name: COMPO_ACC
*
* Type element: COMPO
* Domain name: COMPO
* Internal type: CHAR
* Description: Component in ACC Interface
* Max length: 4
*
*
*/
@ElementName("COMPO_ACC")
@Nullable
private ComponentInAccInterface compoAcc;
/**
* Field name: COMP_CODE
*
* Type element: BUKRS
* Domain name: BUKRS
* Internal type: CHAR
* Description: Company Code
* Max length: 4
*
*
*/
@ElementName("COMP_CODE")
@Nullable
private CompanyCode compCode;
/**
* Field name: DOC_DATE
*
* Type element: BLDAT
* Domain name: DATUM
* Internal type: DATS
* Description: Document Date in Document
* Max length: 8
*
*
*/
@ElementName("DOC_DATE")
@Nullable
private LocalDate docDate;
/**
* Field name: DOC_STATUS
*
* Type element: BAPI_ACC_DOC_STATUS
* Domain name: ACC_STATUS
* Internal type: CHAR
* Description: Document Status
* Max length: 1
*
*
*/
@ElementName("DOC_STATUS")
@Nullable
private DocumentStatus docStatus;
/**
* Field name: DOC_TYPE
*
* Type element: BLART
* Domain name: BLART
* Internal type: CHAR
* Description: Document type
* Max length: 2
*
*
*/
@ElementName("DOC_TYPE")
@Nullable
private DocumentType docType;
/**
* Field name: ECS_ENV
*
* Type element: ACC_DTE_ECS_IF_TYPE
* Domain name: ACC_ECS_IF_TYPE
* Internal type: CHAR
* Description: ECS Environment
* Max length: 10
*
*
*/
@ElementName("ECS_ENV")
@Nullable
private EcsEnvironment ecsEnv;
/**
* Field name: FISC_YEAR
*
* Type element: GJAHR
* Domain name: GJAHR
* Internal type: NUMC
* Description: Fiscal Year
* Max length: 4
*
*
*/
@ElementName("FISC_YEAR")
@Nullable
private Year fiscYear;
/**
* Field name: FIS_PERIOD
*
* Type element: MONAT
* Domain name: MONAT
* Internal type: NUMC
* Description: Fiscal period
* Max length: 2
*
*
*/
@ElementName("FIS_PERIOD")
@Nullable
private FiscalPeriod fisPeriod;
/**
* Field name: HEADER_TXT
*
* Type element: BKTXT
* Domain name: TEXT25
* Internal type: CHAR
* Description: Document Header Text
* Max length: 25
*
*
*/
@ElementName("HEADER_TXT")
@Nullable
private String headerTxt;
/**
* Field name: INVOICE_REC_DATE
*
* Type element: REINDAT
* Domain name: DATUM
* Internal type: DATS
* Description: Invoice Receipt Date
* Max length: 8
*
*
*/
@ElementName("INVOICE_REC_DATE")
@Nullable
private LocalDate invoiceRecDate;
/**
* Field name: NEG_POSTNG
*
* Type element: XNEGP
* Domain name: XFELD
* Internal type: CHAR
* Description: Indicator: Negative posting
* Max length: 1
*
*
*/
@ElementName("NEG_POSTNG")
@Nullable
private ErpBoolean negPostng;
/**
* Field name: OBJ_KEY
*
* Type element: AWKEY
* Domain name: AWKEY
* Internal type: CHAR
* Description: Object key
* Max length: 20
*
*
*/
@ElementName("OBJ_KEY")
@Nullable
private ObjectKey objKey;
/**
* Field name: OBJ_KEY_INV
*
* Type element: AWKEY_REB
* Domain name: AWKEY
* Internal type: CHAR
* Description: Invoice Ref.: Object Key (AWREF_REB and AWORG_REB)
* Max length: 20
*
*
*/
@ElementName("OBJ_KEY_INV")
@Nullable
private InvoiceRefObjectKey objKeyInv;
/**
* Field name: OBJ_KEY_R
*
* Type element: AWKEY_REV
* Domain name: AWKEY
* Internal type: CHAR
* Description: Cancel: object key (AWREF_REV and AWORG_REV)
* Max length: 20
*
*
*/
@ElementName("OBJ_KEY_R")
@Nullable
private CancelObjectKey objKeyR;
/**
* Field name: OBJ_SYS
*
* Type element: AWSYS
* Domain name: LOGSYS
* Internal type: CHAR
* Description: Logical system of source document
* Max length: 10
*
*
*/
@ElementName("OBJ_SYS")
@Nullable
private LogicalSystemOfSourceDocument objSys;
/**
* Field name: OBJ_TYPE
*
* Type element: AWTYP
* Domain name: AWTYP
* Internal type: CHAR
* Description: Reference Transaction
* Max length: 5
*
*
*/
@ElementName("OBJ_TYPE")
@Nullable
private ReferenceTransaction objType;
/**
* Field name: PARTIAL_REV
*
* Type element: BAPI_PART_REV
* Domain name: XFELD
* Internal type: CHAR
* Description: Indicator: Partial Reversal
* Max length: 1
*
*
*/
@ElementName("PARTIAL_REV")
@Nullable
private ErpBoolean partialRev;
/**
* Field name: PSTNG_DATE
*
* Type element: BUDAT
* Domain name: DATUM
* Internal type: DATS
* Description: Posting Date in the Document
* Max length: 8
*
*
*/
@ElementName("PSTNG_DATE")
@Nullable
private LocalDate pstngDate;
/**
* Field name: REASON_REV
*
* Type element: ACPI_STGRD
* Domain name: CHAR2
* Internal type: CHAR
* Description: Reason for reversal
* Max length: 2
*
*
*/
@ElementName("REASON_REV")
@Nullable
private String reasonRev;
/**
* Field name: REF_DOC_NO
*
* Type element: XBLNR
* Domain name: XBLNR
* Internal type: CHAR
* Description: Reference Document Number
* Max length: 16
*
*
*/
@ElementName("REF_DOC_NO")
@Nullable
private ReferenceDocumentNumber refDocNo;
/**
* Field name: REF_DOC_NO_LONG
*
* Type element: XBLNR_LONG
* Domain name: XBLNR_LONG
* Internal type: CHAR
* Description: Reference Document Number (for Dependencies see Long Text)
* Max length: 35
*
*
*/
@ElementName("REF_DOC_NO_LONG")
@Nullable
private ReferenceDocumentNumber35 refDocNoLong;
/**
* Field name: TAX_CALC_DATE
*
* Type element: TXDAT
* Domain name: DATUM
* Internal type: DATS
* Description: Date for defining tax rates
* Max length: 8
*
*
*/
@ElementName("TAX_CALC_DATE")
@Nullable
private LocalDate taxCalcDate;
/**
* Field name: TRANS_DATE
*
* Type element: WWERT_D
* Domain name: DATUM
* Internal type: DATS
* Description: Translation Date
* Max length: 8
*
*
*/
@ElementName("TRANS_DATE")
@Nullable
private LocalDate transDate;
/**
* Field name: USERNAME
*
* Type element: USNAM
* Domain name: XUBNAME
* Internal type: CHAR
* Description: User Name
* Max length: 12
*
*
*/
@ElementName("USERNAME")
@Nullable
private UserName username;
/**
* Field name: VATDATE
*
* Type element: VATDATE
* Domain name: DATUM
* Internal type: DATS
* Description: Tax Reporting Date
* Max length: 8
*
*
*/
@ElementName("VATDATE")
@Nullable
private LocalDate vatdate;
public void validate()
throws IllegalArgumentException
{
if ((busAct!= null)&&(busAct.length()> 4)) {
throw new IllegalArgumentException("Bapi method parameter \"busAct\" contains an invalid structure. Structure attribute \"BUS_ACT\" / Function parameter \"busAct\" must have at most 4 characters. The given value is too long.");
}
if ((headerTxt!= null)&&(headerTxt.length()> 25)) {
throw new IllegalArgumentException("Bapi method parameter \"headerTxt\" contains an invalid structure. Structure attribute \"HEADER_TXT\" / Function parameter \"headerTxt\" must have at most 25 characters. The given value is too long.");
}
if ((reasonRev!= null)&&(reasonRev.length()> 2)) {
throw new IllegalArgumentException("Bapi method parameter \"reasonRev\" contains an invalid structure. Structure attribute \"REASON_REV\" / Function parameter \"reasonRev\" must have at most 2 characters. The given value is too long.");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy