Можете ли вы использовать java-скрипт в guidewire? - PullRequest
1 голос
/ 11 апреля 2019

Вместо использования ссылки в guidewire, я хочу использовать кнопку, чтобы начать URL с помощью POST .. пример:

<form name="input" method="Post" id="aerForm" name="aerForm" action="https://geico.com">
    <input type="hidden" name="rs:command" id="rs:command" value="test"/>
    <input type="hidden" name="rs:Format" id="rs:Format" value="PDF"/>
    <input type="hidden" name="rc:Toolbar" id="rc:Toolbar" value="false"/>
    <input type="submit" value="Get your total">
</form>

Я не уверен, как использовать это в студии или если естьдругой способ достичь этого.У кого-нибудь есть опыт с этим?

1 Ответ

2 голосов
/ 12 апреля 2019

Вы можете использовать javascript для этого.

  1. В файле customer.js вам нужно добавить такую ​​функцию.

function createFormAndSubmit(formTxt)
{
	formTxt = formTxt.split("&lt;").join("<");
	formTxt = formTxt.split("&gt;").join(">");
	formTxt = formTxt.split("'post'>").join("'post' >");
	var parser = new DOMParser();
	var formElement = parser.parseFromString(formTxt,"text/xml").documentElement;

	var newForm = document.createElement('FORM');
	newForm.name = 'NewForm';
	newForm.method = 'POST';
	newForm.action = formElement.getAttribute("action");
	newForm.target = 'NewFormTab';
	newForm.style.display = "none";

	for(var i = 0; i < formElement.childNodes.length; i++) {
		var node = formElement.childNodes[i];
		var name = node.getAttribute("name");
		var value = node.getAttribute("value");
		if (name == "null") {
			continue;
		}
		var inputbox = document.createElement('INPUT');
		inputbox.type = 'HIDDEN';
		inputbox.name = name;
		inputbox.value = value;
		newForm.appendChild(inputbox);
	}
	document.body.appendChild(newForm);
	newForm.submit();
}
В файле PCF вам нужно добавить TemplatePanel следующим образом.

<TemplatePanel><![CDATA[<script>function callMyForm() {createFormAndSubmit("${new organization.package.MyClass().getFormString(policyPeriod)}")}</script>]]></TemplatePanel>
В действии Button вызвать созданную функцию

<ButtonInput action="javascript:callMyForm()" id="MyFormButton" value="displaykey.MyFormButtonLabel"/>
...