字符限制是列表中的每个元素COMMAND_TEXT
,因此您只需将您QUERY
的字符串拆分为 75 个字符或更短的字符串。您可以手动执行此操作,例如:
COMMAND_TEXT = [
'SELECT NON EMPTY [ABC].[LEVEL01].MEMBERS \n', # 42-characters
' DIMENSION PROPERTIES [XYZ].[FIELD01] ON ROWS', # 45-characters
' FROM [ABC/QUERY01]', # 19 characters
]
bwConn.call('BAPI_MDDATASET_CREATE_OBJECT', COMMAND_TEXT=COMMAND_TEXT)
或者您可以根据需要编写查询并自动将其拆分为块:
import textwrap
QUERY = "SELECT NON EMPTY [ABC].[LEVEL01].MEMBERS \n" \
" DIMENSION PROPERTIES [XYZ].[FIELD01] ON ROWS" \
" FROM [ABC/QUERY01]"
COMMAND_TEXT = textwrap.wrap(QUERY, 75)
bwConn.call('BAPI_MDDATASET_CREATE_OBJECT', COMMAND_TEXT=COMMAND_TEXT)
请注意,您也可以QUERY
等效地定义为多行字符串:
QUERY2 = """SELECT NON EMPTY [ABC].[LEVEL01].MEMBERS
DIMENSION PROPERTIES [XYZ].[FIELD01] ON ROWS FROM [ABC/QUERY01]"""
print(QUERY == QUERY2) # True
这更容易阅读和维护。