Á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
			AlJavascript ladowith del Fluig se utilizará un Javascript con el comando <strong>Window.open()</strong>,the <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>. AlOn lado del 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 un <strong>Zoom</strong> deBelow are the steps required to create a field in a process form and
		associate it to a <strong>Zoom</strong> from <strong>Datasul</strong>.
		ComoAs an ejemploexample, we vamoswill 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> delfield on formulariothe delform Gráficoin Figure
		4.2.a,
		se abriráthe lawindow ventanain del GráficoFigure 4.2.b opens band 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> A través delThrough <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 by deseveral diferentesforms procesosfrom quedifferent tenganprocesses zoomsthat asociadoshave 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 lathe carpeta <strong>datasets</strong> folder, hágaright clicclick conand elselect
		botón 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áficothe <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 de acuerdo con el Gráficoin 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ámust personalizarsebe en el
			cliente, para contener el servidor y puerto de Datasul, el usuario decustomized at the client to contain the
			integraciónDatasul server yand contraseña.port, Lathe contraseñaintegration debeuser estarand provistapassword. enThe
			Base64. Para codificar la contraseña a Base64 utilizar la siguiente
			función de Javascriptpassword must be provided in Base64. In order to code the password
			for Base64, use the following Javascript 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 crearthe el 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> Create a Creenew unform nuevoby formularioright
			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 de form 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> Substitute Sustituyathe elform códigocode delwith
			formulario por el código que está a continuación	the following 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 losdata datosfrom del dataset '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 la carpetathe <strong>ClienteForm</strong>,
			haga clic con botón derecho del ratón y seleccione <strong>Nuevo</strong>folder, right click and select <strong>New</strong> > <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 se crearán los campos del formulario según el
			proceso en el que se utilizaráfile, according to the process it 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 porby Zoom 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>
			debe tener las definiciones de los campos del formulario, como se
			muestrashould enhave elthe ejemploform anterior.field Ademásdefinitions seas deberáshown crearin lathe función <strong>zoomCallBackprevious
				(datosexample. Also, the function <strong>zoomCallBack(data)</strong> must
			be created, which quewill serábe llamadocalled porby 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</strong> a abrir en el Datasul. Este identificación del programareceives the <strong>metadata program</strong> as a parameter to be
			debeopened serin laDatasul. mismaThis queprogram elidentification formulariomust completadobe enthe elsame <strong>menú</strong>as
			dethe 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> UnaOnce vez creadothe el <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ónexport (el archivofile <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>