我尝试了不同的驱动程序版本,mule版本,不同的表,但无法从Mule到Heroku-Postgresql的插入/更新。
我尝试在Heroku-postgresql上插入Java代码,以检查是否存在写访问问题,但是,这样做效果很好。
我在本地postgreql上尝试的同一个应用程序在本地postgresql上运行得很好,但在heroku postgresql上却不行。
注意:如果我没有设置输入参数和硬编码值,那么heroku也可以工作。
Mule和Heroku postgresql的输入参数值有什么问题?我没有得到任何错误,没有例外,所以,在这里输入图像描述无法理解的问题。
请帮帮我,我卡住了。
我尝试将输入参数值设置为:
{
"Id":payload.Id,
"AccountId": payload.AccountId,
"OwnerId": payload.OwnerId,
"ContractId": payload.ContractId,
"Pricebook2Id": payload.Pricebook2Id,
"OrderNumber": payload.OrderNumber,
"IsReductionOrder": payload.IsReductionOrder as Boolean,
"Status": payload.Status,
"Name": payload.Name,
"TotalAmount": payload.TotalAmount,
"EffectiveDate":payload.EffectiveDate as Date
}Mule配置:
<db:config name="Database_Config" doc:name="Database Config" doc:id="db823135-d287-439f-ad77-76652012b66f" >
<db:generic-connection url="xxx" driverClassName="org.postgresql.Driver" user="xxx" password="xxx" />
</db:config>
<flow name="testherokuFlow" doc:id="5ac6fe61-525a-4ede-8163-43ad4d402f76" >
<scheduler doc:name="Scheduler" doc:id="27b640f6-f8b2-4e06-9c44-ddf5941b99c7" >
<scheduling-strategy >
<fixed-frequency frequency="15" timeUnit="SECONDS"/>
</scheduling-strategy>
</scheduler>
<set-payload value='#[{
"Id": "8012w000000De1qAAC",
"AccountId": "0012w00000KY8kFAAT",
"OwnerId": "0052w000006WxYiAAK",
"ContractId": "8002w000000YBG6AAO",
"Pricebook2Id": "01s2w00000C4oj9AAB",
"OrderNumber": "00000101",
"IsReductionOrder": "false",
"TotalAmount": "110000.0",
"EffectiveDate": "2020-09-24",
"Status": "Draft",
"Name": null,
"BillingCity": null,
"ActivatedDate": null,
"ShipToContactId": null,
"CompanyAuthorizedById": null,
"CustomerAuthorizedDate": null,
"BillingPostalCode": null,
"ShippingStreet": null,
"CustomerAuthorizedById": null,
"ShippingPostalCode": null,
"ShippingState": null,
"BillingState": null,
"BillingAddress": null,
"ShippingCountry": null,
"ShippingCity": null,
"OrderReferenceNumber": null,
"OriginalOrderId": null,
"CompanyAuthorizedDate": null,
"BillToContactId": null,
"EndDate": null,
"BillingCountry": null,
"BillingStreet": null,
"ShippingAddress": null
}]' doc:name="Set Payload" doc:id="94fc6b1f-eb99-427e-afad-79cca35ec130" />
<logger level="INFO" doc:name="Logger" doc:id="f14f263b-baad-4ad3-94dc-c65546f3dfb2" message="Insert in progress"/>
<db:insert doc:name="Insert" doc:id="7d1f1a43-b257-4a6d-83c0-dc48d652e44a" config-ref="Database_Config">
<db:sql ><![CDATA[insert into sf_order (id, account_id, owner_id,contract_id,pricebook2_id,order_number,is_reduction_order,status, name, total_amount, effective_date)
VALUES (:Id, :AccountId, :OwnerId,:ContractId,:Pricebook2Id,:OrderNumber,:IsReductionOrder,:Status, :Name, :TotalAmount,:EffectiveDate) ]]></db:sql>
<db:input-parameters ><![CDATA[#[{
"Id":payload.Id,
"AccountId":payload.AccountId,
"OwnerId":payload.OwnerId,
"ContractId":payload.ContractId,
"Pricebook2Id":payload.Pricebook2Id,
"OrderNumber":payload.OrderNumber,
"IsReductionOrder":if(payload.IsReductionOrder==null or payload.IsReductionOrder=="null") ("false" as Boolean) else (payload.IsReductionOrder) as Boolean,
"Status":payload.Status,
"Name":payload.Name,
"TotalAmount":payload.TotalAmount,
"EffectiveDate":payload.EffectiveDate as Date
}]]]></db:input-parameters>
</db:insert>
<logger level="INFO" doc:name="Logger" doc:id="f6cc1c2e-f99d-425e-9b8b-b6bfa756caeb" message="Insert done"/>
</flow>发布于 2020-09-30 21:11:52
设置的参数in与插入中使用的in的大小写不匹配。试着让两个都匹配大小写。
例如,"Id":payload.Id设置为Id,但查询使用(id, (小写'i')。
将它们都设为'id‘或两者都设为'Id’。
https://stackoverflow.com/questions/64088050
复制相似问题