2

我一般是 Salesforce 的新手,我试图决定如何处理 SOAP Web 服务的调用。当前,当用户单击“机会”页面上的按钮时,Web 服务正在通过 AJAX 执行。我被要求从按钮中移动 web 服务调用并将其放入自定义控制器页面中。因此,当满足某些条件时,需要无缝调用 Web 服务,而不是让用户单击按钮。

我想使用相同的 ajax 语句启动 web 服务,因为它可以节省我的时间。虽然通过 Apex 调用 Web 服务似乎更有意义,但我仍在研究该主题。所以这是我的问题:

是否可以从 Apex 控制器中执行以下 javascript?如果有怎么办?

{!REQUIRESCRIPT("/soap/ajax/24.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/24.0/apex.js")}
var xfolder = "MyNewFolder"
var parentid = "999999999999999"
var myvar = sforce.apex.execute("myWS","invokeExternalWs", {folderName:xfolder,ObjectID:parentid});
window.alert('Folder created: ' + myvar);
4

1 回答 1

4

首先通读这些参考文档:Action FunctionsAjax 中的 ApexVisualforce JavaScript Remoting

执行您要求的最简单方法是使用标签在页面上包含connection.js和文件(如下所示)。apex.js<apex:includeScript>

<apex:includeScript value="/soap/ajax/24.0/connection.js"/>
<apex:includeScript value="/soap/ajax/24.0/apex.js"/>

<script>然后,将你的 JavaScript 放在标签下的一个标签中的一个函数中<page>

<script>
    function invokeWebService()
    {
        var xfolder = "MyNewFolder"
        var parentid = "999999999999999"
        var myvar = sforce.apex.execute("myWS","invokeExternalWs", {folderName:xfolder,ObjectID:parentid});
        window.alert('Folder created: ' + myvar);
    }
</script>

onclick最后,使用输入按钮上的属性调用您的函数。

<button type="button" onclick="invokeWebService();" style="btn">Invoke</button>

注意..我还没有测试过这些,但它应该可以进行一些小的调整(我已经多次使用过类似的方法)。

于 2012-04-27T19:05:44.540 回答