{ "id": "G1940", "category": "D", "object_type": "MSAG", "difficulty": 2, "release_target": "v816", "expected_outcome": "implement", "budget": { "max_tool_calls": 60, "max_activations": 15 }, "seed": [], "contract": [ { "type": "MSAG", "name": "{{P}}MSG_CRANE", "messages": [ { "msgno": "001" }, { "msgno": "002" }, { "msgno": "003" }, { "msgno": "004" }, { "msgno": "005" } ] }, { "type": "CLAS", "name": "{{P}}CX_CRANE_ERROR" }, { "type": "CLAS", "name": "{{P}}LIFT_CHECK" } ], "out_of_scope": [ "database tables", "CDS view entities", "reports", "changes to other objects in package $TMP" ], "hidden_tests": [ { "type": "CLAS", "name": "{{P}}LIFT_HIDDEN", "file": "hidden/lift_hidden.clas.abap", "description": "Hidden tests for the crane message class, the crane exception class, and the lift plan check" } ], "reference": [ { "type": "MSAG", "name": "{{P}}MSG_CRANE", "description": "Messages of the mobile crane hire company", "messages": [ { "msgno": "001", "text": "Lift plan &1 has no crane" }, { "msgno": "002", "text": "Lift plan &1 is too heavy for crane &2" }, { "msgno": "003", "text": "Lift plan &1 is blocked because of wind" }, { "msgno": "004", "text": "Lift plan &1 is near the load limit" }, { "msgno": "005", "text": "Lift plan &1 is approved" } ] }, { "type": "CLAS", "name": "{{P}}CX_CRANE_ERROR", "file": "reference/cx_crane_error.clas.abap", "description": "Class-based exception that carries a crane message" }, { "type": "CLAS", "name": "{{P}}LIFT_CHECK", "file": "reference/lift_check.clas.abap", "testclasses_file": "reference/lift_check.clas.testclasses.abap", "description": "Checks a lift plan and raises the crane exception" }, { "type": "CLAS", "name": "{{P}}LIFT_TEST", "file": "reference/lift_test.clas.abap", "description": "Own tests for the crane message class and the crane exception" } ], "craft_checks": [ "method_length" ] }