fix: create 命令 --package 透传修复——args.package 此前全库 0 引用,DDIC 对象一律静默落 $TMP;_create_ddic 补 package 参数传递,实测 create 直落 ZINT 包成功(B1 试点 FS-201 全量 DDIC 依赖此修复落地)
This commit is contained in:
@@ -924,7 +924,8 @@ def cmd_create(args: argparse.Namespace, client: ADTClient) -> None:
|
||||
return
|
||||
|
||||
if obj_type in DDIC_TYPES:
|
||||
_create_ddic(args, client, obj_type, name, description, corr_nr, definition_file)
|
||||
package = getattr(args, "package", None) or "$TMP"
|
||||
_create_ddic(args, client, obj_type, name, description, corr_nr, definition_file, package)
|
||||
return
|
||||
|
||||
if source_file:
|
||||
@@ -936,8 +937,9 @@ def cmd_create(args: argparse.Namespace, client: ADTClient) -> None:
|
||||
|
||||
print(f"\n → 正在创建对象...")
|
||||
try:
|
||||
package = getattr(args, "package", None) or "$TMP"
|
||||
created_uri, created_src_uri = client.create_object(
|
||||
obj_type, name, description, corr_nr, source
|
||||
obj_type, name, description, corr_nr, source, package
|
||||
)
|
||||
except Exception as e:
|
||||
print(f" ✗ 创建失败: {e}")
|
||||
@@ -1016,6 +1018,7 @@ def _create_ddic(
|
||||
description: str,
|
||||
corr_nr: str | None,
|
||||
definition_file: str | None,
|
||||
package: str = "$TMP",
|
||||
) -> None:
|
||||
"""创建 DDIC 对象(domain/dataelement/table/structure/tabletype)。"""
|
||||
from sapcli.ddic import (
|
||||
@@ -1043,7 +1046,7 @@ def _create_ddic(
|
||||
lowercase=data.get("lowercase", False),
|
||||
fix_values=data.get("fix_values", []),
|
||||
)
|
||||
definition_body = defn.to_xml(name.upper(), description)
|
||||
definition_body = defn.to_xml(name.upper(), description, package)
|
||||
elif obj_type == "dataelement":
|
||||
defn = DataElementDefinition(
|
||||
datatype=data.get("datatype", "CHAR"),
|
||||
@@ -1051,7 +1054,7 @@ def _create_ddic(
|
||||
decimals=data.get("decimals", 0),
|
||||
domain_name=data.get("domain_name", ""),
|
||||
)
|
||||
definition_body = defn.to_xml(name.upper(), description)
|
||||
definition_body = defn.to_xml(name.upper(), description, package)
|
||||
elif obj_type == "table":
|
||||
fields = [
|
||||
TableField(
|
||||
@@ -1091,15 +1094,15 @@ def _create_ddic(
|
||||
key_type=data.get("key_type", "#USER_DEFINED"),
|
||||
access_mode=data.get("access_mode", "#STANDARD"),
|
||||
)
|
||||
definition_body = defn.to_xml(name.upper(), description)
|
||||
definition_body = defn.to_xml(name.upper(), description, package)
|
||||
|
||||
if definition_body is None:
|
||||
if obj_type == "domain":
|
||||
defn = DomainDefinition()
|
||||
definition_body = defn.to_xml(name.upper(), description)
|
||||
definition_body = defn.to_xml(name.upper(), description, package)
|
||||
elif obj_type == "dataelement":
|
||||
defn = DataElementDefinition()
|
||||
definition_body = defn.to_xml(name.upper(), description)
|
||||
definition_body = defn.to_xml(name.upper(), description, package)
|
||||
elif obj_type == "table":
|
||||
defn = TableDefinition(fields=[
|
||||
TableField(name="key_field", type_name="char10", not_null=True),
|
||||
@@ -1117,7 +1120,7 @@ def _create_ddic(
|
||||
print(f"\n → 正在创建 DDIC 对象...")
|
||||
try:
|
||||
created_uri, created_src_uri = client.create_ddic_object(
|
||||
obj_type, name, definition_body, corr_nr
|
||||
obj_type, name, definition_body, corr_nr, package
|
||||
)
|
||||
except Exception as e:
|
||||
print(f" ✗ 创建失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user