You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GeneXus17中API Object接收SDT参数报未初始化错误如何解决

解决方案

根本原因

GeneXus 17的API Object组件参数解析逻辑比旧版PRCRest更严格,不会自动初始化嵌套SDT类型的入参,你直接将SDT类型的&identificacao作为独立顶层入参定义时,生成Java代码时没有自动加实例化逻辑,就会抛出变量未初始化的编译错误。

修复方案(二选一即可)

方案1:封装顶层请求SDT(推荐)

  1. 新建一个根SDT(例如命名为CertidaoNegativaImovelRequest),添加两个属性:
    • identificacao:类型选择你现有的identificacao SDT
    • dimensao:类型选择字符串
  2. 修改API Object的路由定义,替换原有入参:
    Routes{ 
        [RestMethod(POST)]
        obterCertidaoNegativaImovel(in:&request, out:&pdf, out:&codigo, out:&mensagem)
            => api.poupatempo.obterCertidaoNegativaImovel(&request.identificacao, &request.dimensao, &pdf, &codigo, &mensagem); 
    }
    
  3. 清理项目后重新构建即可,原有请求JSON结构无需任何改动,完全兼容。

方案2:手动初始化SDT入参

无需修改入参定义,打开API Object的事件编辑界面,在BeforeExecute事件中添加初始化代码:

&identificacao = new 你的SDT类名()

将你的SDT类名替换为你实际的identificacao对应的SDT类型名即可,重新构建后错误会消失。


内容的提问来源于stack exchange,提问作者Anderson Porcari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:36:05