Groovy 1.5脚本排查:wbs_elem未赋值问题求助
问题排查与修复方案
核心问题:变量类型不匹配
Boomi接口传入的in_company_code大概率是字符串类型,但你的switch case里用的是数字(1000/2000/3000),类型不匹配导致所有case都无法命中,wbs_elem始终未被赋值,所以无输出。
修复步骤
统一变量类型
将case中的数字改为字符串格式,确保和输入变量类型一致:switch(in_company_code){ case '1000': wbs_elem = 'W' + in_wbs_elem; break; case '2000': wbs_elem = 'U' + in_wbs_elem; break; case '3000': wbs_elem = 'M' + in_wbs_elem; break; }添加default分支
增加默认分支,处理未匹配到的公司代码情况,避免无输出,同时便于调试:switch(in_company_code){ case '1000': wbs_elem = 'W' + in_wbs_elem; break; case '2000': wbs_elem = 'U' + in_wbs_elem; break; case '3000': wbs_elem = 'M' + in_wbs_elem; break; default: // 可自定义默认前缀或保留原值 wbs_elem = 'UNKNOW_' + in_wbs_elem; break; }调试验证变量传递
在脚本中添加日志打印,确认输入变量是否正确传入:// 打印输入变量值,用于调试 logger.info('传入的公司代码:' + in_company_code); logger.info('传入的WBS元素:' + in_wbs_elem); switch(in_company_code){ case '1000': wbs_elem = 'W' + in_wbs_elem; break; case '2000': wbs_elem = 'U' + in_wbs_elem; break; case '3000': wbs_elem = 'M' + in_wbs_elem; break; default: wbs_elem = 'UNKNOW_' + in_wbs_elem; logger.info('未匹配到指定公司代码:' + in_company_code); break; } // 打印最终结果,验证输出 logger.info('生成的WBS元素:' + wbs_elem);
内容的提问来源于stack exchange,提问作者Laurence Evans
相关产品推荐
相关产品推荐

