Skip to content

allow writing rulesets to transport requests #47

Description

@MagPasulke

Feature: Add RuleSet data to transport requests (On-Premise)

Sequencing note: Implement this only after #88 is completed (Cloud / On-Premise split).

Depends on #88

Scope

Enable adding RuleSet-related table data from UI into an existing CTS transport request in on-premise systems.

UX draft (RAP/Fiori)

  1. Add bound action on RuleSet Object Page: Add to Transport.
  2. Action parameter dialog asks for TransportRequest (required in MVP).
  3. Result shows request/task and per-object add status.

Backend draft

  1. Action handler resolves selected RuleSet and validates authorization.
  2. Build transport object list (TABU) for:
    • ZASIS_RULESETHD (header row)
    • ZASIS_RULESETITM (all item rows for RuleSet)
  3. Insert entries into request via TR_OBJECTS_INSERT.
  4. Return structured result (success/warnings/errors).

Sample (simplified)

METHOD add_ruleset_to_request.
  DATA e071_tab TYPE STANDARD TABLE OF e071.
  DATA e071k_tab TYPE STANDARD TABLE OF e071k.

  APPEND VALUE e071(
    pgmid    = 'R3TR'
    object   = 'TABU'
    obj_name = 'ZASIS_RULESETHD' ) TO e071_tab.

  APPEND VALUE e071k(
    pgmid      = 'R3TR'
    object     = 'TABU'
    objname    = 'ZASIS_RULESETHD'
    mastertype = 'TABU'
    mastername = 'ZASIS_RULESETHD'
    tabkey     = zcl_zasis_transport_key=>build_rulesethd_tabkey( ruleset_id ) ) TO e071k_tab.

  CALL FUNCTION 'TR_OBJECTS_INSERT'
    EXPORTING
      wi_order = transport_request
    TABLES
      wt_e071  = e071_tab
      wt_e071k = e071k_tab
    EXCEPTIONS
      cancelled = 1
      OTHERS    = 2.

  IF sy-subrc <> 0.
    RAISE EXCEPTION TYPE zasis_cx_exc
      EXPORTING textid = zasis_cx_exc=>transport_insert_failed.
  ENDIF.
ENDMETHOD.

Validation and error handling

  1. Reject missing/invalid/non-modifiable request.
  2. Reject package/request mismatches.
  3. Report if object already assigned to conflicting open request.
  4. No silent partial failure; return per-item status.

Constraints

  • On-Premise only.
  • No auto-release/import in MVP.
  • No Cloud implementation in this issue.

Acceptance criteria

  1. User can add one RuleSet (header + items) to specified open request from UI.
  2. Duplicate/conflict/request-state errors are surfaced clearly.
  3. Action response provides transport number and add results.
  4. Covered by tests for mapping + CTS integration behavior.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions