Thursday Focus Theme: Backend Engineering + Automation (AMDP, CDS, DevOps) Flashcards

(10 cards)

1
Q

What is an AMDP and when would you use it in BW?

A

AMDP (ABAP Managed Database Procedure) allows writing SQLScript directly in ABAP classes, executed inside the HANA database.

  • Used for heavy data transformations where pushdown improves performance
  • Common BW use: complex time calculations, joins, or aggregations during transformation routines

Example: Calculating warehouse task durations excluding weekends & holidays.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How do you implement an AMDP routine in a BW transformation?

A
  1. In BW, go to the transformation that needs the AMDP routine.
  2. Ensure that you set the TRF’s runtime to HANA.
  3. In the global settings, navigate to the relevant routine type, such as “Start Routine” or “End Routine”.
    Then click “create” or “edit, which will open an ABAP class editor in Eclipse.
  4. Write your SQLScript logic within the PROCEDURE method of the generated class using inTab, outTab, and errorTab tables, then save, activate, and activate the transformation itself.

Tip: Mention use of table parameters for inbound/outbound packages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When should you use AMDP vs ABAP routines?

A
  • Large datasets: AMDP ✅ (executed in DB), ABAP Routine ❌ (application server)
  • Complex joins / SQL logic:
    AMDP ✅,
    ABAP Routine ❌
  • Simple field manipulation:
    AMDP ❌,
    ABAP Routine ✅
  • Debugging ease:
    AMDP ❌,
    ABAP Routine ✅ (easier in ABAP)

Rule of thumb: Use AMDP when logic can be expressed in SQLScript and performance is key.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a CDS View, and how does it differ from an AMDP?

A

CDS (Core Data Services) is a declarative SQL view defined on HANA tables using annotations.

AMDP is procedural SQLScript logic encapsulated in ABAP methods.

  • CDS = reusable data model
  • AMDP = procedural transformation logic

Combine both: You can expose CDS as Analytical View for BW CompositeProviders or use it in AMDP joins.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How do you expose a CDS View for BW consumption?

A
  • Use annotation @Analytics.query: true
  • Define key figures and characteristics
  • Register it as a DataSource or Open ODS View in BW
  • Optionally join with BW InfoObjects for master data consistency

Tip: Mention semantic annotations like @EndUserText.label.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Scenario: You need to calculate total working hours between two timestamps excluding weekends and holidays. How would you do it?

A
  • Create AMDP routine referencing a holiday calendar table (e.g., ZHOLIDAY)
  • Use SQLScript to loop between timestamps → exclude non-working days
  • Return the calculated difference as a new key figure

Add-on: In real systems, call a helper method or use SAP standard function module HR_WORK_SCHEDULE_READ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are Start, End, and Expert Routines in Transformations?

A
  • Start Routine: runs before field mapping; used to filter or pre-process packages
  • End Routine: runs after mapping; used for summarization or custom aggregation
  • Expert Routine: replaces standard mapping; gives full control over source/target tables

Example: Use Start Routine to exclude test data; End Routine to compute average duration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How can DevOps principles be applied in SAP BW?

A
  • Automation: automate data loads by creating process chains.
  • Customer centricity:
    use value-to-effort to prioritize work in the backlog.
    Emped customer feedback in development lifecycle.
    Continuously optimize products to improve quality, reliability, and speed.
  • Continuous monitoring: this is to ensure good performance of applications or quick response to potential issues. i.e. Automate process chain monitoring (RSPC logs → alerts → dashboards).
  • Communication and collaboration: This principle emphasizes breaking down silos between development, operations, and other stakeholders. Open communication channels facilitate transparency, alignment of goals, and rapid decision-making, ultimately leading to faster delivery and higher-quality outcomes.
  • Version Control: Version control systems like Git are fundamental to DevOps. They enable teams to manage code changes, collaborate efficiently, and maintain a complete history of all code alterations. Version control ensures code stability and simplifies collaboration among developers.
  • Continuous Integration (CI): Automate transport imports, ATC checks, and unit tests
  • Continuous Delivery (CD): Deploy BW objects to QA/Prod via pipelines (Jenkins, Azure DevOps)

Example: “We integrated ILAS BW transports with Azure DevOps CI/CD pipeline for automated deployment.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are your go-to strategies for monitoring and recovery automation?

A
  • Automated Chain Monitoring: Use RSPCM for batch jobs and email alerts
  • Error DTP Recovery: Trigger follow-up DTPs via event chains
  • Runtime Logging: Custom tables/logs for failed packages
  • Self-healing: Scripts that detect failed loads and restart dependent chains

Mention proactive tooling mindset: “We built dashboards to visualize DTP runtimes per source system.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Scenario (DevOps): Your transport failed in QA after successful Dev run — what steps do you take?

A
  • Check transport log (STMS, SE10) → identify missing dependencies
  • Use where-used list to locate objects not included
  • Recreate corrected transport or adjust dependency order
  • Re-import → validate via regression test

Add: “I always tag dependent BW objects together in gCTS branches to avoid this.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly