Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
HTML
<div id="main-content" class="wiki-content group">
	<h3
		id="id-5.ChamadasaZoomsdoDatasulatravésdeFormuláriosnoFluig-5.1.Objetivo">
		<strong>5.1. Objetivo<Objective</strong>
	</h3>
	<p align="LEFT" class="western">
		<span>El <strong>Fluig<<span><strong>Fluig</strong>(ECM) should debebe serable capazto decall invocarzooms
			zoomsin en<strong>Datasul elMetadata</strong> <strong>Metadadosfor Datasul</strong>cases parawhere aquellosthe casosdata enentry
			queform elwas formulario de entrada de datos se desarrolló por el propio developed by <strong>Fluig</strong>.
		 </span>
	</p>
	<p align="LEFT" class="western">
		<span>En<span>In una formularioFluig Fluigform, existiendo un campo que when there is a field that represents a
			represente un <strong>zoom Metadatos<<strong>Metadata zoom</strong>, by clicking alon hacerit cliceFluig este,should
			Fluig deberá realizar una llamada HTTP pasando una URL con los
			parámetros para abrir una nueva ventana del browser que contenga elperform an HTTP call sending a URL with the parameters for opening a
			new browser window containing the <strong>zoom</strong>. On Fluig, a
			Al lado del Fluig se utilizará un Javascript conwith elthe comando <strong>Window.open()</strong>, command will be
			deused, acuerdoaccording conto lasinstructions instruccionesin que se presentan en el documentothe document: “<strong>Guía“<strong>Reference
				deGuide ReferenciaCard PersonalizaciónIndex de FichаriosCustomization.pdf</strong>” delin ECM, ítemitem: <strong>Zoom<strong>External
				Externo<Zoom</strong>. Al lado delOn Datasul, lathe URL lanzadasent porby Fluig abrirá el will open the Metadata zoom
			zoomusing delthe MetadatosFramework utilizando la técnica de <strong><em>External
					<strong><em>External Call</em></strong> del Framework
			technique.
		</span>
	</p>
	<p align="LEFT" class="western">
		<span><br /></span>
	</p>
	<h3
		id="id-5.ChamadasaZoomsdoDatasulatravésdeFormuláriosnoFluig-5.2.GuiadeProgramação">
		<strong>5.2. GuíaProgramming de Programación<Guide</strong>
	</h3>
	<p>
		A continuación, veremos los pasos necesarios para crear un campo en un
		formulario de proceso y asociarlo a unBelow are the steps required to create a field in a process form and
		associate it to a <strong>Zoom</strong> defrom <strong>Datasul</strong>.
		ComoAs an ejemploexample, vamoswe will ause utilizarthe elParent zoom defrom Paísthe de la aplicación CRMCRM application,
		deaccording acuerdoto conthe losfollowing siguientes gráficosfigures.
	</p>
	<p>
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen01.png?version=1&modificationDate=1380907388000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen01.png?version=1&modificationDate=1380907388000&api=v2">
	</p>
	<p style="text-align: center;">
		<strong>Gráfico<strong>Figure 4.2.a</strong>
	</p>
	<p style="text-align: left; margin-left: 30.0px;">
		<strong><br /></strong>Alstrong>By hacer clic en el botónclicking the <strong>"..."</strong> button
		juntonext alto campothe <strong>País<<strong>Country</strong> field delon formulariothe delform Gráficoin Figure
		4.2.a,
		se abriráthe lawindow ventanain del GráficoFigure 4.2.b bopens and parathe queuser elcan usuarioselect seleccionea
		un paíscountry.
	</p>
	<p style="text-align: left; margin-left: 30.0px;">
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen02.png?version=1&modificationDate=1380907405000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen02.png?version=1&modificationDate=1380907405000&api=v2">
	</p>
	<p style="text-align: center;">
		<strong>Gráfico<strong>Figure 4.2.b</strong>
	</p>
	<p style="text-align: left; margin-left: 30.0px;">
		<strong><br /></strong>Despuésstrong>After deselecting seleccionara uncountry paísand yclicking hacer clic enthe <strong>Select</strong>
		el botón <strong>Seleccionar</strong>, se cerrará la ventana de zoom y
		el formulario del proceso recibirá los datos del país seleccionado. Un
		script en el formulario HTML será responsable de recibir los datos del
		registro y presentar el nombre del país en el campo correspondiente,
		como lo muestra el Gráficobutton, the zoom window will be closed and the process form will
		receive the data from the selected country. A script in the HTML form
		will be responsible for receiving the record data and presenting the
		country name in the corresponding field, as shown in Figure 4.2.c.
	</p>
	<p>
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen3.png?version=1&modificationDate=1380906303000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen3.png?version=1&modificationDate=1380906303000&api=v2">
	</p>
	<p style="text-align: center;">
		<strong>Gráfico<strong>Figure 4.2.c</strong>
	</p>
	<p>&#160;</p>
	<h3 style="text-align: left; margin-left: 30.0px;"
		id="id-5.ChamadasaZoomsdoDatasulatravésdeFormuláriosnoFluig-CriandoumFormulário">
		<strong>Creando<strong>Creating una Formulario<Form</strong>
	</h3>
	<p style="margin-left: 30.0px;">
		<u><strong>A.</strong></u> AThrough través del <strong>Fluig Studio</strong>,
		creecreate una nuevonew <strong>Dataset</strong> parato store almacenarthe informacióninformation deon
		conexiónDatasul conserver elconnection servidorand Datasuluser ycredentials. credencialesThis deDataset usuario.can Variosbe
		formulariosused deby diferentesseveral procesosforms quefrom tengandifferent zoomsprocesses asociadosthat have podránassociated
		utilizar este Datasetzooms.
	</p>
	<p style="margin-left: 60.0px;">
		AFrom partira de un <strong>proyecto Fluig<<strong>Fluig project</strong> enin el<strong>Fluig <strong>Fluig&#160;Studio</strong>,
		seleccioneselect la carpetathe <strong>datasets</strong> folder, hágaright clicclick conand elselect
		botónthe derecho del ratón y seleccione la opción <strong>Nuevo</strong>.
		Luego seleccione el ítem <strong>Dataset personalizado Fluig</strong>,
		como muestra el gráfico 4.<strong>New</strong> option. Then, select the item <strong>Fluig
			Customized Dataset</strong>, as shown in Figure 4.2.d.
	</p>
	<p style="margin-left: 30.0px;">
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen1.png?version=2&modificationDate=1380907040000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen1.png?version=2&modificationDate=1380907040000&api=v2">
	</p>
	<p style="margin-left: 30.0px; text-align: center;">
		<strong>Gráfico<strong>Figure 4.2.d</strong>
	</p>
	<p style="margin-left: 60.0px;">A continuación informe los>Next, inform the parameters as
		parámetrosshown dein acuerdo con el Gráfico Figure 4.2.e.</p>
	<p style="margin-left: 30.0px; text-align: center;">
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen2.png?version=2&modificationDate=1380907129000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen2.png?version=2&modificationDate=1380907129000&api=v2"><strong>Gráfico><strong>Figure
			4.2.e</strong>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span>Escriba<span>Type elthe siguientefollowing códigocode en elin DatasulServerDS:</span>
	</p>
	<div class="code panel pdl" style="border-width: 1px;">
		<div class="codeContent panelContent pdl">
			<pre class="theme: Eclipse; brush: javascript; gutter: true"
				style="font-size: 12px;">function createDataset(fields, constraints, sortFields) {
    var newDataset = DatasetBuilder.newDataset();
    // CreaCreates lasthe columnascolumns
    newDataset.addColumn("server");
    newDataset.addColumn("port");
    newDataset.addColumn("user");
    newDataset.addColumn("password");
    // CreaCreates losthe registrosrecords
    newDataset.addRow(new Array('10.80.17.124', '8080', 'framework', 'ZnJhbWV3b3Jr='));
    return newDataset;
}</pre>
		</div>
	</div>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span>Todos los <strong>formularios<span>This dataset will be used by all <strong>forms </strong>en el<strong>strong>in<strong>
				Fluig</strong> quethat haganhave accesoaccess ato <strong>zooms </strong>en<strong>Datasulstrong>in<strong>
				utilizarán ese dataset<Datasul</strong>. ElThe dataset deberá personalizarse en el must be customized at the client to contain the
			cliente,Datasul paraserver contenerand elport, servidorthe yintegration puertouser deand Datasul, el usuario depassword. The
			integración y contraseña. La contraseña debe estar provista enpassword must be provided in Base64. In order to code the password
			for Base64., Parause codificarthe lafollowing contraseña a Base64 utilizar la siguiente
			función de JavascriptJavascript function:
		</span>
	</p>
	<pre>        var pwd64 = btoa("framework");</pre>
	<p>&#160;</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span>Después<span>After decreating crear elthe dataset, hagaright clicclick enit esteand conselect elthe
			botón derecho y seleccione la opción option </span><span><strong>exportar<span><span><strong>export</strong></span><span> to send the
			paradataset enviar el dataset al<strong>Fluig<to <strong>Fluig</strong>, deas acuerdoshown conin el <strong>Gráfico
				4Figure <strong>4.2.f</strong>.
		</span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><img class="confluence-embedded-image"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen03.png?version=2&modificationDate=1380909280000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen03.png?version=2&modificationDate=1380909280000&api=v2"><br /></span>
	</p>
	<p align="LEFT" class="western"
		style="margin-left: 60.0px; text-align: center;">
		<strong>Gráfico<strong>Figure 4.2.f</strong>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><br /></span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><u><strong>B.</strong></u> CreeCreate un nuevo formularioa new form by right
			haciendoclicking clicthe confolder el<strong>forms</strong> botónat derechoFluig en la carpeta <strong>forms</strong>project. Then
			delselect proyecto<strong>New Fluig.> LuegoOther seleccione <strong>Nuevo > Otros >
				Fluig > DefiniciónForm de Formulario<Definition</strong>, como se muestra en el Gráficoas
			shown in Figure 4.2.g.<br /></span>
	</p>
	<p align="LEFT" class="western"
		style="margin-left: 60.0px; text-align: center;">
		<span><img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Fig1.png?version=1&modificationDate=1381756845000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Fig1.png?version=1&modificationDate=1381756845000&api=v2"><strong>Gráfico><strong>Figure
				4.2.g</strong><br /></span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><u><strong>C.</strong></u> For Parathe elname nombreof delthe formularioform,
			informeinform <strong>ClienteForm</strong> deas acuerdoshown conin el GráficoFigure 4.2.h.<br /></span>
	</p>
	<p align="LEFT" class="western"
		style="margin-left: 60.0px; text-align: center;">
		<span><img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Fig2.png?version=1&modificationDate=1381756898000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Fig2.png?version=1&modificationDate=1381756898000&api=v2"><strong>Gráfico><strong>Figure
				4.2.h</strong><br /></span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><u><strong>D.</strong></u> CambieRename elthe nombre del
			formulario deform to <strong>DatasulForm.html</strong> (sólo el formulario,
			mantenga el nombre de la carpeta como(only the form. Keep the name of the folder as <strong>ClienteForm</strong>)</span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 60.0px;">
		<span><u><strong>E.</strong></u> SustituyaSubstitute the elform códigocode delwith
			formulariothe por el código que está a continuaciónfollowing code:</span>
	</p>
	<div class="code panel pdl" style="border-width: 1px;">
		<div class="codeContent panelContent pdl">
			<pre class="theme: Eclipse; brush: html/xml; gutter: true"
				style="font-size: 12px;">&lt;html>
   &lt;head> 
      &lt;script language="javascript" type="text/javascript" src="/webdesk/vcXMLRPC.js">&lt;/script> 
      &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">&lt;/script>
      &lt;script src="Datasul.js" language="javascript">&lt;/script>
      &lt;script>
         var server;
         var user;
         var password;
     
         /**
          * InicializaStarts elthe formularioform yand obtieneobtains los datos del datasetdata from 'DatasulServerDS' dataset.
          */
         function loadForm() {
            try {
               // ObtieneObtains losthe datosdata delfrom DatasulServerDS
               var dataset = DatasetFactory.getDataset("DatasulServerDS", null, null, null);
               server = dataset.values[0]["server"] + ":" + dataset.values[0]["port"];
               user = dataset.values[0]["user"];
               password = dataset.values[0]["password"];
           
               var zoomAppletTag = '&lt;applet' +
                                   ' code="com.totvs.framework.md.zoom.fluig.ZoomApplet"' +
                                   ' id="dsZoom" height="0" width="0"' +
                                   ' codebase="http://' + server + '/datasul/applets"' + 
                                   ' archive="datasul-framework-mdablscript-java.jar"' +
                                 &#160; ' MAYSCRIPT>&lt;/applet>';
               document.getElementById("zoomApplet").innerHTML = zoomAppletTag;
           
               $("#customForm").load("CustomForm.html");
           
            } catch(e) {
               alert(e);
            }
         }
    
         /**
          Realiza* laOpens aperturaa deZoom un formulario Zoom MetadatosMetadata form.
          * @param server
          * @param user
          * @param password
          * @param title
          * @param program
          */
         function callZoom(program) {
            var portNumber = document.dsZoom.getPortNumber();
            var url = "http://" + server + "/josso/signon/externalUserAuthentication.do?" + 
                      "josso_cmd=external-login&amp;type=md&amp;program=" + program + 
                      "&amp;viewtype=view&amp;zoomMode=true&amp;userid=" + user +
                      "&amp;password=" + password +
                      "&amp;zoomCallBackPort=" + portNumber;
            try {
               window.open(url, "Zoom" ,"width=800,height=600");
            } catch (e) {
               alert(e);
            }
         }
      &lt;/script>
   &lt;/head>
   &lt;body onload="loadForm()">
      &lt;form name="customForm">
         &lt;input type="hidden" name="hidden">
         &lt;div id="customForm">&lt;/div>  
         &lt;div id="zoomApplet">&lt;/div>      
      &lt;/form>
   &lt;/body>
&lt;/html></pre>
		</div>
	</div>
	<p style="margin-left: 30.0px;">
		<strong>Obs. El código anterior no debe ni requiere<strong>Note The previous code does not need to and must not
			cambiarsebe altered.</strong>
	</p>
	<p align="LEFT" class="western" style="margin-left: 37.4333px;">
		<span><u><strong>F.</strong></u> EnIn lathe carpeta <strong>ClienteForm</strong>,
			hagafolder, clicright conclick botónand derechoselect del<strong>New</strong> ratón y seleccione <strong>Nuevo<> <strong>File</strong>.
			> <strong>Archivo</strong>. Añadir un archivo llamadoAdd a file named <strong>CustomForm.html</strong> and then replace
			ythe content sustituyagenerated elfor contenidoit generadowith parathe estefollowing porcode. elThe siguienteform código.fields
			Enare estecreated archivoin quethis sefile, crearánaccording losto camposthe delprocess formularioit según el
			proceso en el que se utilizaráwill use.</span>
	</p>
	<div class="code panel pdl" style="border-width: 1px;">
		<div class="codeContent panelContent pdl">
			<pre class="theme: Eclipse; brush: html/xml; gutter: true"
				style="font-size: 12px;">&lt;h2>Clienteh2>Client&lt;/h2>
&lt;table>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Códigob>Code:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="6" name="A1_COD">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Nomeb>Name:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="40" name="A1_NOME">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Nombreb>Trade FantasiaName:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="20" name="A1_NREDUZ">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Enderecob>Address:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="40" name="A1_END">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Municipiob>City:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="40" name="A1_MUN">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Estadob>State:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="2" name="A1_EST">&lt;/strong>&lt;/td>
   &lt;/tr>
   &lt;tr>
      &lt;td align="right" width="150" class="Labels">&lt;b>Paisb>Country:&lt;/b>&lt;/td>
      &lt;td class="Normal">&lt;strong>&lt;input type="text" size="15" name="A1_PAIS">&lt;input value="..."
       onClick="callZoom('crm1150.CRUDpais')" type="button">&lt;/strong>&lt;/td>
   &lt;/tr>
&lt;/table>
&lt;script>
/**
 * FunciónFunction utilizadaused por Zoomby Datasul paraZoom responderto conreturn elthe registroselected seleccionadorecord
 * parafor elthe formularioform enin Fluig.
 */
function zoomCallBack(data) {
   try {
      var obj = JSON.parse(data);
      document.customForm.A1_PAIS.value = obj.nom_pais;
   } catch (e) {
      alert(e.message);
   }
}
&lt;/script></pre>
		</div>
	</div>
	<p align="LEFT" class="western" style="margin-left: 37.4333px;">
		<span>El<span>The contenidocontents delof archivofile <strong>CustomForm.html</strong>
			debeshould tenerhave lasthe definicionesform defield losdefinitions camposas delshown formulario,in comothe seprevious
			muestra en el ejemplo anteriorexample. AdemásAlso, sethe deberá crear la función <strong>zoomCallBackfunction <strong>zoomCallBack(data)</strong> must
				(datos)</strong>, que será llamado porbe created, which will be called by Datasul despuésafter dethe queuser el usuarioselects
			llevethe arecord caboon lathe selecciónZoom delscreen. registroThis enfunction lawill pantallareceive Zoom.a EsaJSON
			funciónstring recibiráwith unthe stringdata JSONfrom conthe los datos del registro
			seleccionadoselected record.
		</span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 37.4333px;">
		<span>En<span>In el campothe <strong>A1_PAIS</strong> quefield representathat elrepresents the
			<strong>zoom,</strong>
			el eventothe <strong>onClick</strong> realizaevent una llamadaperforms a la función<strong>
				call to the<strong> callZoom</strong>() function. Esta función recibe como parámetro el <strong>programaThis function
				de metadatos<receives the <strong>metadata program</strong> as a abrir en elparameter to be
			opened in Datasul. EsteThis identificaciónprogram del programa
			debe ser la misma que el formulario completado en el <strong>menú</strong>
			de Datasulidentification must be the same as
			the form registered in the Datasul <strong>menu</strong>.<br /></span>
	</p>
	<p align="LEFT" class="western" style="margin-left: 37.4333px;">
		<span><br /></span>
	</p>
	<p align="LEFT" style="margin-left: 30.0px;">
		<u><strong>G.</strong></u> Una vez creado elOnce the <strong>DatasulForm.html</strong>
		yand <strong>CustomForm.htm</strong>l,expórtelos al are created, export them to <strong>Fluig</strong>.
		HagaRight clic en el botón derecho delclick on <strong>DatasulForm.html</strong> and perform ythe
		lleve a cabo la exportación (el archivoexport (file <strong>CustomForm.htm</strong>l
		se exportaráwill junto automáticamente). En la secuencia informe unabe exported
		carpetatogether y concluya la exportación. Una vez finalizada esta etapa, el
		formulario se colocará en la central de documentos del Fluig abajo de
		la carpeta seleccionadaautomatically). Then, inform a folder and complete the
		export. After completing this step, the form will be placed in Fluig
		document center below the selected folder.
	</p>
	<p>&#160;</p>
	<p style="margin-left: 30.0px;">
		<u><strong>H.</strong></u> PorFinally, último,change cambiethe elprocess procesothat quewill utilizaráuse
		elthe <strong>ClienteForm</strong> associating althe asociarleform elto formularioit, comoas seshown
		muestra en la figurain Figure 4.2.i.
	</p>
	<p align="LEFT" style="margin-left: 30.0px; text-align: center;">
		<img class="confluence-embedded-image image-center"
			src="http://tdn.totvs.com/download/attachments/81789187/Screen07.png?version=1&modificationDate=1380915042000&api=v2"
			data-image-src="http://tdn.totvs.com/download/attachments/81789187/Screen07.png?version=1&modificationDate=1380915042000&api=v2">Gráfico><strong>Figure
			4.2.i</img>strong>
	</p>
	<p align="LEFT">
		<strong><br /></strong>
	</p>
	<h3
		id="id-5.ChamadasaZoomsdoDatasulatravésdeFormuláriosnoFluig-FunçãoABLScriptparaFormuláriosFreeForm">
		<strong>Función<strong>ABLScript ABLScriptfunction parafor FormulariosFreeForm FreeForm<Forms</strong>
	</h3>
	<p>
		EnIn elthe ejemploprevious vistoexample, anteriormente,where dondewe utilizamosused elthe zoomParent depage Paíszoom, <strong>no<strong>it
			fuewas necesarionot realizarnecessary ningunato implementaciónimplement oor modificaciónmodify al lado
			delanything in Datasul</strong>. Eso se debe al hecho de que utilizamos un formulario
		metadatos del tipo <strong>CRUDFreeForm</strong> como zoom. También
		podemos implementar un zoom a través de un formulario <strong>FreeForm</strong>,
		en este caso se necesitará crear un código de ABLScript en el
		formulario para enviar al Fluig el registro seleccionado por el
		usuario. Veremos a continuación un ejemplo de script paraThis is
		due to the fact that we used a metadata form type <strong>CRUDFreeForm</strong>
		as zoom. We can also implement a zoom through a <strong>FreeForm</strong>
		form. In this case, it will be necessary to create an ABLScript code
		on the form to send the record selected by the user to Fluig. Below
		there is an example of a script for <strong>FreeForm</strong>.
	</p>
	<p align="LEFT" class="western">
		<span>Suponiendo<span>Assuming quethat enon el formulariothe <strong>FreeForm</strong> form there
			existeis una botónbutton llamadocalled
		</span><span><strong>Seleccionaspan><span><strong>Select,</strong></span><span> queand when altriggered
			accionarseit debeshould cerrarclose lathe ventanaMetadata Metadatoswindow y<and</span><span> enviarsend elthe
			registroselected seleccionadorecord. EnIn elthe evento“click” deevent «clic»of delthe botón <strong>Seleccionar<<strong>Select</strong>
			podremos obtener unbutton we can have a script similar to the aone estebelow:
		</span>
	</p>
	<div class="code panel pdl" style="border-width: 1px;">
		<div class="codeContent panelContent pdl">
			<pre class="theme: Eclipse; brush: plain; gutter: true"
				style="font-size: 12px;">DEFINE TEMP-TABLE ttGrid
   FIELD num_id AS INTEGER
   FIELD nom_pais AS CHARACTER
   FIELD nom_nacion AS CHARACTER
   FIELD num_ddi AS CHARACTER
   FIELD log_suspenso AS LOGICAL
   FIELD nom_mascar_cep AS CHARACTER
   FIELD cod_pais_ibge AS CHARACTER
   FIELD log_cep AS LOGICAL
   FIELD cod_pais_erp AS CHARACTER
   FIELD log_integrad_erp AS LOGICAL.
DEFINE VARIABLE paisparent pages AS CHARACTER.      
   
ttGrid = GETPROPERTY("grid", "selectedItemsCheckbox").
ttGrid:SET-CURRENT(0).
paisparent pages = JSON-ENCODE(ttGrid).
CALL-BACK-WINDOW-OPENER(pais, true).
</pre>
		</div>
	</div>
	<p style="margin-left: 30.0px;">
		La funciónThe CALL-BACK-WINDOW-OPENER() envía los datos del registro
		seleccionado para el Fluig y lego cierra la ventana del formulario de
		zoom. El primer parámetro debe ser un string con los datos del
		registro seleccionado en formato JSON. El segundo parámetro es una
		variable de tipo <strong>boolean</strong> que cuando es) function sends the selected record data
		to Fluig an then closes the zoom form window. The first parameter must
		be a string with the selected record data in JSON format. The second
		parameter is a <strong>boolean</strong> variable that when set to <strong>true</strong>,
		indicaindicates lathe funciónfunction quethat lathe ventanazoom dewindow zoomwill debebe cerrarclosed.
	</p>
	<p style="margin-left: 30.0px;">De>Similar manerato similarthe alprevious ejemploexample,
		anterior,the losCRUDFreemForm zooms return dea CRUDFreemFormJSON respondenstring ato Fluig unawith stringthe JSONfields
		conin losthe camposselected delrecord. registroIn seleccionado.Fluig, Alrecord ladofields delcan Fluigbe seobtained puedenas
		obtener los campos del registro de la siguiente manerafollows:</p>
	<div class="code panel pdl" style="border-width: 1px;">
		<div class="codeContent panelContent pdl">
			<pre class="theme: Eclipse; brush: javascript; gutter: true"
				style="font-size: 12px;">var obj = JSON.parse(value);
document.customForm.A1_PAIS.value = obj.records[0].nom_pais;</pre>
		</div>
	</div>
	<pre>
		<br /><br />
	</pre>
</div>