You will learn

  • How to create an Data Dictionary structure

Step 1: Create a global Data Dictionary structure

Now, you will create a global Data Dictionary (“DDIC”) structure: In the toolbar, select New, then choose Other ABAP Repository Object.

创建新的ABAP字典结构

完成

Step 2: Filter the list of object types

In the wizard that appears, filter the list of ABAP repository object types by entering **struct**.

创建新的ABAP字典结构

完成

Step 3: Enter name and description

Then enter the following and choose Finish.- Name = ZSO_INVOICE_ITEM- Description = for example, Invoice item structure

创建新的ABAP字典结构

A new text editor is opened showing the content of the newly created Data Dictionary structure.

完成

Step 4: Remove the generated component

Remove the generated example component component_to_be_changed from the structure:

创建新的ABAP字典结构

完成

Step 5: Define fields for the structure

In the item structure, define the fields company_name, amount, currency_code, and payment_status as follows:

ABAP

Copy

  company_name   : snwd_company_name;
  amount         : snwd_ttl_gross_amount;
  currency_code  : snwd_curr_code;
  payment_status : snwd_soi_payment_status_code;

创建新的ABAP字典结构

The editor shows a syntax error because the amount has not yet been bound to the currency code.

完成

Step 6: Bind amount to currency code annotation

To bind the amount to the currency code:

  1. Add a new line in front of the field amount, add @ and open code completion, by entering Ctrl+Space. A list of all possible annotations is shown.

  2. Select the annotation @Semantics.amount.currencyCode.

    创建新的ABAP字典结构
  3. Trigger the code completion again: enter : ' after @Semantics.amount.currencyCode, then choose Ctrl+Space, then choose the annotation zso_invoice_item.currency_code:

    创建新的ABAP字典结构

  4. Finally choose Save (Ctrl+S)

You should no longer get a syntax error.

完成

Step 7: Check and activate the structure

Back in the structure ZSO_INVOICE_ITEM, choose Check ABAP Development Object (Ctrl+F2). Then choose Activate (Ctrl+F3).

The Data Dictionary structure ZSO_INVOICE_ITEM is now activated.

Your code should look like this:

ABAP

Copy

@EndUserText.label : 'Invoice Item Structure'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
define type zso_invoice_item {
  company_name   : snwd_company_name;
  @Semantics.amount.currencyCode : 'zso_invoice_item.currency_code'
  amount         : snwd_ttl_gross_amount;
  currency_code  : snwd_curr_code;
  payment_status : snwd_soi_payment_status_code;

}

完成

Step 8: Test yourself

Create a similar field for the netAmount. Copy the following code:

ABAP

Copy

@Semantics.amount.currencyCode : 'zso_invoice_item.currency_code'
netAmount         : snwd_ttl_net_amount;

相关文章: