Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
# API — Datos de Cocinas Modulares (MARMOTECH)
|
||||
|
||||
Servicio REST para consultar, por período, las ventas, gastos y consumo de insumos
|
||||
de las cocinas modulares.
|
||||
|
||||
---
|
||||
|
||||
## Conexión
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **URL** | `https://ws.marmotech.com.do/gas/ws/r/restserver` |
|
||||
| **Método** | `POST` |
|
||||
| **Header** | `Content-Type: dbsync/json` |
|
||||
| **Header** | `DBSync-Client: mbs` |
|
||||
|
||||
> Ambos headers son **obligatorios**. Si `DBSync-Client` no es exactamente `mbs`
|
||||
> o el `Content-Type` no empieza con `dbsync/json`, el servidor responde `400 Bad request`.
|
||||
|
||||
---
|
||||
|
||||
## Cuerpo del request (body)
|
||||
|
||||
El body es un JSON con dos campos: `oper` y `data`.
|
||||
**Importante:** `data` NO es un objeto — es un **string** que contiene otro JSON
|
||||
(por eso sus comillas van escapadas con `\`).
|
||||
|
||||
```json
|
||||
{
|
||||
"oper": "datos_cocinas",
|
||||
"data": "{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"
|
||||
}
|
||||
```
|
||||
|
||||
### Parámetros dentro de `data`
|
||||
|
||||
| Campo | Tipo | Descripción |
|
||||
|---|---|---|
|
||||
| `usuario` | string | Usuario de base de datos para la conexión. |
|
||||
| `clave` | string | Clave del usuario. |
|
||||
| `fechaCorte` | string `YYYY-MM-DD` | Cualquier fecha dentro del **mes de producción** a consultar. El servicio toma el año/mes de esta fecha para calcular el rango (`fecha1`–`fecha2`). |
|
||||
|
||||
---
|
||||
|
||||
## Ejemplos por herramienta
|
||||
|
||||
### curl — Linux / Mac / Git Bash
|
||||
```bash
|
||||
curl -i -X POST "https://ws.marmotech.com.do/gas/ws/r/restserver" \
|
||||
-H "Content-Type: dbsync/json" \
|
||||
-H "DBSync-Client: mbs" \
|
||||
-d '{"oper":"datos_cocinas","data":"{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"}'
|
||||
```
|
||||
|
||||
### curl — Windows CMD (cmd.exe)
|
||||
```bat
|
||||
curl.exe -i -X POST "https://ws.marmotech.com.do/gas/ws/r/restserver" -H "Content-Type: dbsync/json" -H "DBSync-Client: mbs" -d "{\"oper\":\"datos_cocinas\",\"data\":\"{\\\"usuario\\\":\\\"conecta\\\",\\\"clave\\\":\\\"conecta\\\",\\\"fechaCorte\\\":\\\"2026-07-01\\\"}\"}"
|
||||
```
|
||||
|
||||
### Windows PowerShell (recomendado en Windows)
|
||||
PowerShell maltrata las comillas al pasarlas a `curl.exe`; usa `Invoke-RestMethod`:
|
||||
```powershell
|
||||
$body = @'
|
||||
{"oper":"datos_cocinas","data":"{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"}
|
||||
'@
|
||||
|
||||
Invoke-RestMethod -Uri "https://ws.marmotech.com.do/gas/ws/r/restserver" `
|
||||
-Method Post -ContentType "dbsync/json" `
|
||||
-Headers @{ "DBSync-Client" = "mbs" } -Body $body
|
||||
```
|
||||
|
||||
### Postman
|
||||
1. Método **POST**, URL `https://ws.marmotech.com.do/gas/ws/r/restserver`
|
||||
2. Pestaña **Headers**: agregar `Content-Type: dbsync/json` y `DBSync-Client: mbs`
|
||||
3. Pestaña **Body** → **raw** → pegar el JSON de la sección *Cuerpo del request*.
|
||||
|
||||
---
|
||||
|
||||
## Respuesta
|
||||
|
||||
`HTTP/1.1 200 OK` con `Content-Type: dbsync/json`. El cuerpo es un JSON:
|
||||
|
||||
```json
|
||||
{
|
||||
"ventasCantidad": 99,
|
||||
"cantidadInsumos": 3568.904,
|
||||
"ventasVAlor": 2347966.48,
|
||||
"gastos": 128799.65,
|
||||
"valorIsumos": 794649.12,
|
||||
"cod_msg": 200,
|
||||
"descripcion": "OPERACION EXITOSA"
|
||||
}
|
||||
```
|
||||
|
||||
| Campo | Descripción |
|
||||
|---|---|
|
||||
| `ventasCantidad` | Unidades vendidas de cocinas modulares en el período. |
|
||||
| `ventasVAlor` | Ventas netas (bruto − descuento) de las facturas de cocinas. |
|
||||
| `gastos` | Gastos del departamento de Ensamble Modulares (6118) en el período. |
|
||||
| `cantidadInsumos` | Cantidad de insumos consumidos en el período. |
|
||||
| `valorIsumos` | Valor de esos insumos al costo estándar. |
|
||||
| `cod_msg` | `200` = OK. `400` = error (ver `descripcion`). |
|
||||
| `descripcion` | Mensaje del resultado. Ej.: `OPERACION EXITOSA`, `USUARIO NO VALIDO`. |
|
||||
|
||||
### Errores comunes
|
||||
| Situación | Respuesta |
|
||||
|---|---|
|
||||
| Usuario/clave de BD inválidos | `cod_msg: 400`, `descripcion: "USUARIO NO VALIDO ..."` |
|
||||
| Header `DBSync-Client` o `Content-Type` incorrecto | `HTTP 400 Bad request` |
|
||||
| `data` con JSON mal escapado | Error de parseo JSON (`-8109`) — revisar el escape de comillas |
|
||||
@@ -0,0 +1,218 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Application gstVersion="30a05" version="5">
|
||||
<AGSettings version="3">
|
||||
<DynamicProperties version="2">
|
||||
<DynamicProperty description="Action" dynamicContent="actionContent" editorInfo="editMode:true;isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Action" name="action" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Barcode source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Barcode" name="barcodeSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Allow exporting report" initialValue="true" isDefaultInherited="false" isHidden="false" label="canExport" name="canExport" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Refresh data on return" editorInfo="editMode:false;contains:All Documents|Current Document|All Rows|Current Row|None" initialValue="Current Row" isDefaultInherited="false" isHidden="false" label="Data Refresh" name="dataRefresh" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Default Mode" editorInfo="contains:DISPLAY|ADD|MODIFY|SEARCH|EMPTY" initialValue="" isDefaultInherited="false" isHidden="false" label="Default Mode" name="defaultMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Disable Add functionality" initialValue="false" isDefaultInherited="false" isHidden="false" label="disable Add" name="disableAdd" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Disable Delete functionality" initialValue="false" isDefaultInherited="false" isHidden="false" label="disable Delete" name="disableDelete" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Disable Display functionality" initialValue="false" isDefaultInherited="false" isHidden="true" label="disable Display" name="disableDisplay" readOnly="true" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Disable Empty functionality" initialValue="false" isDefaultInherited="false" isHidden="true" label="disable Empty" name="disableEmpty" readOnly="true" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Disable Modify functionality" initialValue="false" isDefaultInherited="false" isHidden="false" label="disable Modify" name="disableModify" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Disable Search functionality" initialValue="false" isDefaultInherited="false" isHidden="false" label="disable Search" name="disableSearch" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Destination Field" dynamicContent="dstFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Destination Field" name="filterDstField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Source Field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Source Field" name="filterSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Default Mode" editorInfo="contains:DISPLAY|ADD|MODIFY|SEARCH|EMPTY" initialValue="DISPLAY" isDefaultInherited="false" isHidden="false" label="Default Mode" name="formDefaultMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Open Mode" editorInfo="contains:DISPLAY|ADD|MODIFY|SEARCH|EMPTY" initialValue="DISPLAY" isDefaultInherited="false" isHidden="false" label="Open Mode" name="formOpenMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On cancel" name="formTransitionAddCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="formTransitionAddClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="formTransitionAddExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On accept" name="formTransitionAddOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On cancel" name="formTransitionDisplayCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="formTransitionDisplayClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="formTransitionDisplayExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On accept" name="formTransitionDisplayOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On cancel" name="formTransitionModifyCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="formTransitionModifyClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="formTransitionModifyExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On accept" name="formTransitionModifyOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON Cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On cancel" name="formTransitionSearchCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="formTransitionSearchClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="formTransitionSearchExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On accept" name="formTransitionSearchOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Image path source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Image Path" name="imagePathSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Mail attachment path source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Attachment" name="mailAttachmentSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Mail bcc source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Bcc" name="mailBccSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Mail cc source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Cc" name="mailCcSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Mail content source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Content" name="mailContentSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Mail subject source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Subject" name="mailSubjectSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Mail to source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="To" name="mailToSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Maps query source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Query" name="mapsSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Open Mode" editorInfo="contains:DISPLAY|ADD|MODIFY|SEARCH|EMPTY" initialValue="" isDefaultInherited="false" isHidden="false" label="Open Mode" name="openMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Phone number source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Phone Number" name="phoneSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Allow quick exporting of the current report to HTML format" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickHTML" name="quickHTML" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Allow quick exporting of the current report to PDF format" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickPDF" name="quickPDF" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Allow quick previewing of the current report" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickPreview" name="quickPreview" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Allow quick printing of the current report" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickPrint" name="quickPrint" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Allow quick exporting of the current report to RTF (MS-Word) format" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickRTF" name="quickRTF" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Allow quick exporting of the current report to XLS (Excel) format" initialValue="true" isDefaultInherited="false" isHidden="false" label="quickXLS" name="quickXLS" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="Add - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On cancel" name="relationTransitionAddCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On close" name="relationTransitionAddClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On exit" name="relationTransitionAddExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On accept" name="relationTransitionAddOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On cancel" name="relationTransitionDisplayCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On close" name="relationTransitionDisplayClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On exit" name="relationTransitionDisplayExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On accept" name="relationTransitionDisplayOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On cancel" name="relationTransitionModifyCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On close" name="relationTransitionModifyClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On exit" name="relationTransitionModifyExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On accept" name="relationTransitionModifyOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON Cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On cancel" name="relationTransitionSearchCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On close" name="relationTransitionSearchClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On exit" name="relationTransitionSearchExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="" isDefaultInherited="false" isHidden="false" label="On accept" name="relationTransitionSearchOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Label displayed in the 'Report Print Settings' dialog" initialValue="" isDefaultInherited="false" isHidden="false" label="Report Label" name="reportLabel" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Report file (.4rp)" initialValue="" isDefaultInherited="false" isHidden="false" label="Report File" name="reportPath" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Row Bound" initialValue="false" isDefaultInherited="false" isHidden="false" label="Row Bound" name="rowbound" readOnly="false" type="BOOLEAN"/>
|
||||
<DynamicProperty description="SMS content source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Content" name="smsContentSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="SMS to source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="To" name="smsToSrcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Source Field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Source Field" name="srcField" readOnly="false" type="FIELDS"/>
|
||||
<DynamicProperty description="Source Record" dynamicContent="srcRecordContent" editorInfo="editMode:false;isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Source Record" name="srcRecord" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Vcard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Vcard" name="vCardSrcField" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="FirstName vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="First Name" name="vc_FirstName" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="LastName vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Last Name" name="vc_LastName" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="MiddleName vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Middle Name" name="vc_MiddleName" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Prefix vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Prefix" name="vc_Prefix" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Suffix vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Suffix" name="vc_Suffix" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="City of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="City" name="vc_address_home_City" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Country of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Country" name="vc_address_home_Country" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Extended Address of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Extended Address" name="vc_address_home_ExtendedAddress" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Post Office Box of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Post Office Box" name="vc_address_home_PostOfficeBox" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="State of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="State" name="vc_address_home_State" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Street of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Street" name="vc_address_home_Street" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="ZIP of home address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="ZIP" name="vc_address_home_ZIP" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="City of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="City" name="vc_address_work_City" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Country of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Country" name="vc_address_work_Country" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Extended Address of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Extended Address" name="vc_address_work_ExtendedAddress" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Post Office Box of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Post Office Box" name="vc_address_work_PostOfficeBox" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="State of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="State" name="vc_address_work_State" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Street of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Street" name="vc_address_work_Street" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="ZIP of work address in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="ZIP" name="vc_address_work_ZIP" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="birthday vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Birthday" name="vc_birthday" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="department vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Department" name="vc_department" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Home email in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Home" name="vc_email_home" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Work email in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Work" name="vc_email_work" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="formattedName vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Formatted Name" name="vc_formattedName" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="jobTitle vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Job Title" name="vc_jobTitle" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="nickname vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Nickname" name="vc_nickname" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="note vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Note" name="vc_note" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="organization vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Organization" name="vc_organization" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Mobile phone in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Mobile" name="vc_phone_cell_voice" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Home fax in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Home Fax" name="vc_phone_home_fax" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Home phone in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Home" name="vc_phone_home_voice" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Main phone in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Main" name="vc_phone_main" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Work fax in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Work Fax" name="vc_phone_work_fax" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Work phone in vCard source field" dynamicContent="srcFieldContent" editorInfo="isDynamic:true" initialValue="" isDefaultInherited="false" isHidden="false" label="Work" name="vc_phone_work_voice" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Adds a comment to a Web Service" initialValue="" isDefaultInherited="false" isHidden="false" label="Comment" name="wsComment" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Service Name" initialValue="" isDefaultInherited="false" isHidden="false" label="Service Name" name="wsName" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Service Namespace" initialValue="" isDefaultInherited="false" isHidden="false" label="Namespace" name="wsNamespace" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Default Mode" editorInfo="contains:DISPLAY|SEARCH" initialValue="DISPLAY" isDefaultInherited="false" isHidden="false" label="Default Mode" name="zoomDefaultMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Open Mode" editorInfo="contains:DISPLAY|SEARCH" initialValue="DISPLAY" isDefaultInherited="false" isHidden="false" label="Open Mode" name="zoomOpenMode" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="true" label="On cancel" name="zoomTransitionAddCancel" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="true" label="On close" name="zoomTransitionAddClose" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="true" label="On exit" name="zoomTransitionAddExit" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Add - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="true" label="On accept" name="zoomTransitionAddOk" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On cancel" name="zoomTransitionDisplayCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="zoomTransitionDisplayClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="zoomTransitionDisplayExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Display - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On accept" name="zoomTransitionDisplayOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="true" label="On cancel" name="zoomTransitionModifyCancel" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="true" label="On close" name="zoomTransitionModifyClose" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="true" label="On exit" name="zoomTransitionModifyExit" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Modify - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="true" label="On accept" name="zoomTransitionModifyOk" readOnly="true" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON Cancel" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On cancel" name="zoomTransitionSearchCancel" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON close" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitForm" isDefaultInherited="false" isHidden="false" label="On close" name="zoomTransitionSearchClose" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON exit" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ExitApp" isDefaultInherited="false" isHidden="false" label="On exit" name="zoomTransitionSearchExit" readOnly="false" type="ENUM"/>
|
||||
<DynamicProperty description="Search - ON accept" editorInfo="contains:ReturnToDefaultMode|ReturnToCallerMode|StayInMode|ExitForm|ExitApp" initialValue="ReturnToDefaultMode" isDefaultInherited="false" isHidden="false" label="On accept" name="zoomTransitionSearchOk" readOnly="false" type="ENUM"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in ADD mode on OK/Cancel/Close/Exit actions" label="ADD Behavior" name="formAutomatonSettingsAdd" properties="formTransitionAddOk;formTransitionAddCancel;formTransitionAddClose;formTransitionAddExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in DISPLAY mode on OK/Cancel/Close/Exit actions" label="DISPLAY Behavior" name="formAutomatonSettingsDisplay" properties="formTransitionDisplayOk;formTransitionDisplayCancel;formTransitionDisplayClose;formTransitionDisplayExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in MODIFY mode on OK/Cancel/Close/Exit actions" label="MODIFY Behavior" name="formAutomatonSettingsModify" properties="formTransitionModifyOk;formTransitionModifyCancel;formTransitionModifyClose;formTransitionModifyExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in SEARCH mode on OK/Cancel/Close/Exit actions" label="SEARCH Behavior" name="formAutomatonSettingsSearch" properties="formTransitionSearchOk;formTransitionSearchCancel;formTransitionSearchClose;formTransitionSearchExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="User properties group" label="Report Options" name="formReportOptions" properties="quickPrint;quickPreview;quickPDF;quickHTML;quickXLS;quickRTF;canExport"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="User Interface Settings" label="UI Settings" name="formUiSettings" properties="formOpenMode;formDefaultMode"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Target Automaton Settings in ADD mode on OK/Cancel/Close/Exit actions" label="ADD Behavior" name="relationAutomatonSettingsAdd" properties="relationTransitionAddOk;relationTransitionAddCancel;relationTransitionAddClose;relationTransitionAddExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Target Automaton Settings in DISPLAY mode on OK/Cancel/Close/Exit actions" label="DISPLAY Behavior" name="relationAutomatonSettingsDisplay" properties="relationTransitionDisplayOk;relationTransitionDisplayCancel;relationTransitionDisplayClose;relationTransitionDisplayExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Target Automaton Settings in MODIFY mode on OK/Cancel/Close/Exit actions" label="MODIFY Behavior" name="relationAutomatonSettingsModify" properties="relationTransitionModifyOk;relationTransitionModifyCancel;relationTransitionModifyClose;relationTransitionModifyExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Target Automaton Settings in SEARCH mode on OK/Cancel/Close/Exit actions" label="SEARCH Behavior" name="relationAutomatonSettingsSearch" properties="relationTransitionSearchOk;relationTransitionSearchCancel;relationTransitionSearchClose;relationTransitionSearchExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Results properties group" label="Results" name="relationBarcodeResults" properties="barcodeSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Email properties group" label="Email" name="relationContactEmail" properties="vc_email_work;vc_email_home"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Home address properties group" label="Address Home" name="relationContactHomeAddress" properties="vc_address_home_Street;vc_address_home_City;vc_address_home_State;vc_address_home_ZIP;vc_address_home_Country;vc_address_home_PostOfficeBox;vc_address_home_ExtendedAddress"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Person properties group" label="Person" name="relationContactPerson" properties="vc_FirstName;vc_LastName;vc_MiddleName;vc_Prefix;vc_Suffix;vc_formattedName;vc_nickname;vc_jobTitle;vc_organization;vc_department;vc_birthday;vc_note"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Phone properties group" label="Phone" name="relationContactPhone" properties="vc_phone_cell_voice;vc_phone_work_voice;vc_phone_home_voice;vc_phone_main;vc_phone_work_fax;vc_phone_home_fax"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Results properties group" label="Results" name="relationContactResults" properties="vCardSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Work address properties group" label="Address Work" name="relationContactWorkAddress" properties="vc_address_work_Street;vc_address_work_City;vc_address_work_State;vc_address_work_ZIP;vc_address_work_Country;vc_address_work_PostOfficeBox;vc_address_work_ExtendedAddress"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Destination Form User Interface Settings" label="Destination UI Settings" name="relationDestinationUiSettings" properties="openMode;defaultMode"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Filter properties group" label="Filter" name="relationFilter" properties="filterSrcField;filterDstField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Disable Functionality" label="Functionality" name="relationFunctionality" properties="disableDisplay;disableAdd;disableModify;disableDelete;disableSearch;disableEmpty"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Results properties group" label="Results" name="relationImageResults" properties="imagePathSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Mail parameter properties group" label="Parameters" name="relationMailParameters" properties="mailToSrcField;mailCcSrcField;mailBccSrcField;mailSubjectSrcField;mailContentSrcField;mailAttachmentSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Maps parameter properties group" label="Parameters" name="relationMapsParameters" properties="mapsSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Phone parameter properties group" label="Parameters" name="relationPhoneParameters" properties="phoneSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Position properties group" label="Position" name="relationPosition" properties="srcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Report Settings" label="Report Settings" name="relationReportSettings" properties="reportPath;reportLabel"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="SMS parameter properties group" label="Parameters" name="relationSmsParameters" properties="smsToSrcField;smsContentSrcField"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Source Form User Interface Settings" label="Source UI Settings" name="relationSourceUiSettings" properties="action;srcRecord;rowbound;dataRefresh"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Web service properties group" label="Web Service" name="webService" properties="wsName;wsComment"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Web service server properties group" label="Web Service Server" name="webServiceServer" properties="wsNamespace"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in ADD mode on OK/Cancel/Close/Exit actions" label="ADD Behavior" name="zoomAutomatonSettingsAdd" properties="zoomTransitionAddOk;zoomTransitionAddCancel;zoomTransitionAddClose;zoomTransitionAddExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in DISPLAY mode on OK/Cancel/Close/Exit actions" label="DISPLAY Behavior" name="zoomAutomatonSettingsDisplay" properties="zoomTransitionDisplayOk;zoomTransitionDisplayCancel;zoomTransitionDisplayClose;zoomTransitionDisplayExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in MODIFY mode on OK/Cancel/Close/Exit actions" label="MODIFY Behavior" name="zoomAutomatonSettingsModify" properties="zoomTransitionModifyOk;zoomTransitionModifyCancel;zoomTransitionModifyClose;zoomTransitionModifyExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Default Automaton Settings for incoming relation in SEARCH mode on OK/Cancel/Close/Exit actions" label="SEARCH Behavior" name="zoomAutomatonSettingsSearch" properties="zoomTransitionSearchOk;zoomTransitionSearchCancel;zoomTransitionSearchClose;zoomTransitionSearchExit"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="User Interface Settings" label="UI Settings" name="zoomUiSettings" properties="zoomOpenMode;zoomDefaultMode"/>
|
||||
</DynamicProperties>
|
||||
<Items>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" depth="1" extension="4prg" icon="bullet_class" label="Program" name="Program"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="formOpenMode;formDefaultMode;formTransitionDisplayOk;formTransitionDisplayCancel;formTransitionDisplayClose;formTransitionDisplayExit;formTransitionModifyOk;formTransitionModifyCancel;formTransitionModifyClose;formTransitionModifyExit;formTransitionAddOk;formTransitionAddCancel;formTransitionAddClose;formTransitionAddExit;formTransitionSearchOk;formTransitionSearchCancel;formTransitionSearchClose;formTransitionSearchExit;quickPrint;quickPreview;quickPDF;quickHTML;quickXLS;quickRTF;canExport" extension="4fdm" icon="document_4fdm" label="CRUD Form" name="Form"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="zoomOpenMode;zoomDefaultMode;zoomTransitionDisplayOk;zoomTransitionDisplayCancel;zoomTransitionDisplayClose;zoomTransitionDisplayExit;zoomTransitionModifyOk;zoomTransitionModifyCancel;zoomTransitionModifyClose;zoomTransitionModifyExit;zoomTransitionAddOk;zoomTransitionAddCancel;zoomTransitionAddClose;zoomTransitionAddExit;zoomTransitionSearchOk;zoomTransitionSearchCancel;zoomTransitionSearchClose;zoomTransitionSearchExit" extension="4fdz" icon="document_4fdz" label="Zoom Form" name="Zoom"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" extension="4rd" icon="document_4rd_sql" label="Report Data" name="ReportData"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" depth="1" dynamicProperties="wsNamespace" extension="4wsprg" icon="document_4wsprg" label="SOAP Web Service Server" name="WebServiceServer"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment" extension="4ws" icon="document_4ws" label="SOAP Web Service" name="WebService"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment;formOpenMode;formDefaultMode;formTransitionDisplayOk;formTransitionDisplayCancel;formTransitionDisplayClose;formTransitionDisplayExit;formTransitionModifyOk;formTransitionModifyCancel;formTransitionModifyClose;formTransitionModifyExit;formTransitionAddOk;formTransitionAddCancel;formTransitionAddClose;formTransitionAddExit;formTransitionSearchOk;formTransitionSearchCancel;formTransitionSearchClose;formTransitionSearchExit;quickPrint;quickPreview;quickPDF;quickHTML;quickXLS;quickRTF;canExport" extension="4fdmws" icon="document_4fdmws" label="CRUD Form and SOAP Web Service" name="FormWebService"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment;zoomOpenMode;zoomDefaultMode;zoomTransitionDisplayOk;zoomTransitionDisplayCancel;zoomTransitionDisplayClose;zoomTransitionDisplayExit;zoomTransitionModifyOk;zoomTransitionModifyCancel;zoomTransitionModifyClose;zoomTransitionModifyExit;zoomTransitionAddOk;zoomTransitionAddCancel;zoomTransitionAddClose;zoomTransitionAddExit;zoomTransitionSearchOk;zoomTransitionSearchCancel;zoomTransitionSearchClose;zoomTransitionSearchExit" extension="4fdzws" icon="document_4fdzws" label="Zoom Form and SOAP Web Service" name="ZoomWebService"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" depth="1" extension="4wsjprg" icon="document_4wsjprg" label="JSON Web Service Server" name="WebServiceServerJSON"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment" extension="4wsj" icon="document_4wsj" label="JSON Web Service" name="WebServiceJSON"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment;formOpenMode;formDefaultMode;formTransitionDisplayOk;formTransitionDisplayCancel;formTransitionDisplayClose;formTransitionDisplayExit;formTransitionModifyOk;formTransitionModifyCancel;formTransitionModifyClose;formTransitionModifyExit;formTransitionAddOk;formTransitionAddCancel;formTransitionAddClose;formTransitionAddExit;formTransitionSearchOk;formTransitionSearchCancel;formTransitionSearchClose;formTransitionSearchExit;quickPrint;quickPreview;quickPDF;quickHTML;quickXLS;quickRTF;canExport" extension="4fdmwsj" icon="document_4fdmwsj" label="CRUD Form and JSON Web Service" name="FormWebServiceJSON"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" dynamicProperties="wsName;wsComment;zoomOpenMode;zoomDefaultMode;zoomTransitionDisplayOk;zoomTransitionDisplayCancel;zoomTransitionDisplayClose;zoomTransitionDisplayExit;zoomTransitionModifyOk;zoomTransitionModifyCancel;zoomTransitionModifyClose;zoomTransitionModifyExit;zoomTransitionAddOk;zoomTransitionAddCancel;zoomTransitionAddClose;zoomTransitionAddExit;zoomTransitionSearchOk;zoomTransitionSearchCancel;zoomTransitionSearchClose;zoomTransitionSearchExit" extension="4fdzwsj" icon="document_4fdzwsj" label="Zoom Form and JSON Web Service" name="ZoomWebServiceJSON"/>
|
||||
<Item actions="BALocateInPM BAAddRelationTo" extension="4fdc" icon="document_4fdc" label="Custom Form" name="CustomForm"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_takePhoto" label="Photo" name="Photo"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_choosePhoto" label="Gallery" name="Gallery"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_callPhone" label="Phone" name="Phone"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_composeMail" label="Mail" name="Mail"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_composeSms" label="SMS" name="SMS"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_chooseContact" label="Contact" name="Contact"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_mapsTo" label="Maps" name="Maps"/>
|
||||
<BasicItem actions="BAAddRelationTo" icon="ba_scanBarcode" label="Barcode" name="Barcode"/>
|
||||
<Relation dynamicProperties="action;srcRecord;rowbound;srcField;filterSrcField;filterDstField;openMode;defaultMode;dataRefresh;disableDisplay;disableAdd;disableModify;disableDelete;disableSearch;disableEmpty;relationTransitionDisplayOk;relationTransitionDisplayCancel;relationTransitionDisplayClose;relationTransitionDisplayExit;relationTransitionModifyOk;relationTransitionModifyCancel;relationTransitionModifyClose;relationTransitionModifyExit;relationTransitionAddOk;relationTransitionAddCancel;relationTransitionAddClose;relationTransitionAddExit;relationTransitionSearchOk;relationTransitionSearchCancel;relationTransitionSearchClose;relationTransitionSearchExit" icon="ba_relation" label="Form" name="Relation"/>
|
||||
<Relation dynamicProperties="action;srcRecord;rowbound;srcField;filterSrcField;filterDstField;dataRefresh" icon="ba_relation" label="Custom Form" name="CustomFormRelation"/>
|
||||
<Relation dynamicProperties="srcField;filterSrcField;filterDstField;reportPath;reportLabel" icon="ba_relation" label="Report" name="ReportRelation"/>
|
||||
<Relation icon="ba_relation" label="SOAP Web Service" name="WebServiceRelation"/>
|
||||
<Relation icon="ba_relation" label="JSON Web Service" name="WebServiceRelationJSON"/>
|
||||
<Relation dynamicProperties="action;phoneSrcField" icon="ba_relation" label="Phone" name="PhoneRelation"/>
|
||||
<Relation dynamicProperties="action;mailToSrcField;mailCcSrcField;mailBccSrcField;mailSubjectSrcField;mailContentSrcField;mailAttachmentSrcField" icon="ba_relation" label="Mail" name="MailRelation"/>
|
||||
<Relation dynamicProperties="action;smsToSrcField;smsContentSrcField" icon="ba_relation" label="SMS" name="SMSRelation"/>
|
||||
<Relation dynamicProperties="action;mapsSrcField" icon="ba_relation" label="Maps" name="MapsRelation"/>
|
||||
<Relation dynamicProperties="action;imagePathSrcField" icon="ba_relation" label="Photo" name="PhotoRelation"/>
|
||||
<Relation dynamicProperties="action;imagePathSrcField" icon="ba_relation" label="Gallery" name="GalleryRelation"/>
|
||||
<Relation dynamicProperties="action;vCardSrcField;vc_FirstName;vc_LastName;vc_MiddleName;vc_Prefix;vc_Suffix;vc_formattedName;vc_nickname;vc_jobTitle;vc_organization;vc_department;vc_birthday;vc_note;vc_address_work_Street;vc_address_work_City;vc_address_work_State;vc_address_work_ZIP;vc_address_work_Country;vc_address_work_PostOfficeBox;vc_address_work_ExtendedAddress;vc_address_home_Street;vc_address_home_City;vc_address_home_State;vc_address_home_ZIP;vc_address_home_Country;vc_address_home_PostOfficeBox;vc_address_home_ExtendedAddress;vc_phone_cell_voice;vc_phone_work_voice;vc_phone_home_voice;vc_phone_main;vc_phone_work_fax;vc_phone_home_fax;vc_email_work;vc_email_home" icon="ba_relation" label="Contact" name="ContactRelation"/>
|
||||
<Relation dynamicProperties="action;barcodeSrcField" icon="ba_relation" label="Barcode" name="BarcodeRelation"/>
|
||||
</Items>
|
||||
</AGSettings>
|
||||
<Items>
|
||||
<Item fileName="" id="{5ff5e0c7-2ea3-46f2-a03e-d187c171cfb6}" name="main" type="Program">
|
||||
<Relation dst="{b971e095-175c-4980-bb84-079676ebe4bd}" id="{f7c21e14-d080-487c-b422-515c59346a0c}" name="Relation1" type="Relation"/>
|
||||
</Item>
|
||||
<Item fileName="" id="{b971e095-175c-4980-bb84-079676ebe4bd}" name="form" type="Form"/>
|
||||
</Items>
|
||||
<IgnoredFiles/>
|
||||
<Views activeView="View-1">
|
||||
<View name="View-1">
|
||||
<Layout>
|
||||
<![CDATA[AAAAAgAAAEwAewA1AGYAZgA1AGUAMABjADcALQAyAGUAYQAzAC0ANAA2AGYAMgAtAGEAMAAzAGUALQBkADEAOAA3AGMAMQA3ADEAYwBmAGIANgB9QFgAAAAAAABAWYAAAAAAAD98rAgxJul5AQAAAEwAewBiADkANwAxAGUAMAA5ADUALQAxADcANQBjAC0ANAA5ADgAMAAtAGIAYgA4ADQALQAwADcAOQA2ADcANgBlAGIAZQA0AGIAZAB9QHEAAAAAAABAWwAAAAAAAD+Kn752yLQ8AQ==]]>
|
||||
</Layout>
|
||||
</View>
|
||||
</Views>
|
||||
</Application>
|
||||
@@ -0,0 +1 @@
|
||||
{"oper":"datos_cocinas","data":"{\"usuario\":\"conecta\",\"clave\":\"conecta\",\"fechaCorte\":\"2026-07-01\"}"}
|
||||
@@ -0,0 +1,75 @@
|
||||
IMPORT util
|
||||
|
||||
MAIN
|
||||
|
||||
DEFINE jstr STRING
|
||||
|
||||
DISPLAY "Testing the server from a Genero client ..."
|
||||
|
||||
-- esta le da error, y para mi es correcto que de error ya que la estructura del record destino es distinta
|
||||
LET jstr='{"oper":"respuesta","data":{"usuario":"conecta","clave":"conecta","respuesta":{"num_emp":4489,"nombre":"ADRIAN ANDERSON MENDEZ GONZALEZ","id_pregunta":"ENC001","departamento":"CANTERA VICENTE NOBLE","respuesta":"10","pregunta":"CUAN SATISFECHO USTED SE SIENTE CON EL NIVEL DE SERVICIO DE SU SUPLIDOR INTERNO?"}}}'
|
||||
CALL propose_type(jstr)
|
||||
|
||||
-- este no da error pero al armar el string desde Genero manualmente, hay que poner el doble backslash
|
||||
LET jstr='{"oper":"respuesta","data":"{\\"credenciales\\":{\\"usuario\\":\\"conecta\\",\\"clave\\":\\"conecta\\"},\\"repuesta\\":{\\"num_emp\\":3355,\\"cedula\\":\\"00104581939\\",\\"nombre\\":\\"JUAN FRANCISCO SOTO CONCEPCION\\",\\"id_pregunta\\":\\"ENC001\\",\\"pregunta\\":\\"CUAN SATISFECHO USTED SE SIENTE CON EL NIVEL DE SERVICIO DE SU SUPLIDOR INTERNO?\\",\\"repuesta\\":\\"1\\",\\"departamento\\":\\"TECNOLOGIA\\"},\\"mensajes\\":{\\"cod_msg\\":0}}"}'
|
||||
CALL propose_type(jstr)
|
||||
|
||||
-- este obviamente no da error ya que arma el string desde los records
|
||||
CALL arma_jstr() RETURNING jstr
|
||||
CALL propose_type(jstr)
|
||||
|
||||
END MAIN
|
||||
|
||||
FUNCTION propose_type(str_in)
|
||||
DEFINE str_in STRING
|
||||
DISPLAY "JSON String for the Request: \n", str_in
|
||||
DISPLAY "Proposed type: \n",util.JSON.proposeType(str_in)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION arma_jstr()
|
||||
|
||||
DEFINE jstr STRING
|
||||
TYPE t_sync_cmd RECORD -- el formato que espera recibir el server
|
||||
oper STRING,
|
||||
data STRING
|
||||
END RECORD
|
||||
DEFINE r_cmd t_sync_cmd
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
repuesta RECORD
|
||||
num_emp INT,
|
||||
cedula,
|
||||
nombre,
|
||||
id_pregunta,pregunta,repuesta,departamento STRING
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD
|
||||
|
||||
-- arma el record que va a ir a "data"
|
||||
LET p.credenciales.usuario="conecta"
|
||||
LET p.credenciales.clave="conecta"
|
||||
|
||||
LET p.repuesta.num_emp="3355"
|
||||
LET p.repuesta.cedula="00104581939"
|
||||
LET p.repuesta.nombre="JUAN FRANCISCO SOTO CONCEPCION"
|
||||
LET p.repuesta.id_pregunta="ENC001"
|
||||
LET p.repuesta.pregunta="CUAN SATISFECHO USTED SE SIENTE CON EL NIVEL DE SERVICIO DE SU SUPLIDOR INTERNO?"
|
||||
LET p.repuesta.departamento="TECNOLOGIA"
|
||||
LET p.repuesta.repuesta="1"
|
||||
|
||||
LET p.mensajes.cod_msg=0
|
||||
|
||||
-- arma el record del request
|
||||
LET r_cmd.oper="respuesta"
|
||||
LET r_cmd.data=util.JSON.stringify(p)
|
||||
|
||||
CALL util.JSON.stringify(r_cmd) RETURNING jstr
|
||||
|
||||
RETURN jstr
|
||||
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,389 @@
|
||||
# WARNING: Locale must be UTF-8!
|
||||
|
||||
IMPORT util
|
||||
IMPORT com
|
||||
IMPORT os
|
||||
|
||||
TYPE t_sync_cmd RECORD
|
||||
oper STRING,
|
||||
data STRING
|
||||
END RECORD
|
||||
|
||||
DEFINE r_cmd t_sync_cmd -- el comando recibido por el server
|
||||
|
||||
|
||||
DEFINE start_time DATETIME YEAR TO SECOND
|
||||
DEFINE logs DYNAMIC ARRAY OF STRING
|
||||
DEFINE last_request, last_response STRING
|
||||
DEFINE last_date DATETIME YEAR TO SECOND,
|
||||
pcodn CHAR(4)
|
||||
CONSTANT dpy_verb=TRUE -- send messages to standard output
|
||||
CONSTANT log_verb=TRUE -- send messages to the errorlog
|
||||
|
||||
MAIN
|
||||
DEFINE tout, n, x INTEGER
|
||||
DEFINE d0 DATETIME YEAR TO SECOND
|
||||
|
||||
DEFINE url, msg STRING
|
||||
DEFINE method, version, headers STRING
|
||||
DEFINE req com.HTTPServiceRequest
|
||||
|
||||
CALL startlog("err_sync_server.log")
|
||||
|
||||
CALL check_utf8() RETURNING x, msg
|
||||
IF x != 0 THEN
|
||||
DISPLAY "ERROR: ", msg
|
||||
EXIT PROGRAM 1
|
||||
END IF
|
||||
|
||||
CALL show_verb("Starting dbsync server: ...")
|
||||
|
||||
-- Normally, the port is set by the GAS for load balancing
|
||||
-- For standalone tests you can set FGLAPPSERVER environment variable
|
||||
CALL show_verb("Listening on port : "|| NVL(fgl_getenv("FGLAPPSERVER"),"GAS"))
|
||||
|
||||
CALL com.WebServiceEngine.Start()
|
||||
|
||||
LET start_time = CURRENT
|
||||
|
||||
--LET tout=-1 -- timeout: infinite wait
|
||||
--LET tout=5 -- timeout: 5 seconds
|
||||
LET tout=-1 -- timeout: 10 seconds
|
||||
IF tout=-1 THEN
|
||||
LET msg="The dbsync server is listening (timeout = infinite wait)."
|
||||
ELSE
|
||||
LET msg="The dbsync server is listening (timeout =",tout USING "-<<<<<<&"," seconds)."
|
||||
END IF
|
||||
CALL show_verb(msg)
|
||||
|
||||
LET n=0
|
||||
# WHENEVER ERROR CONTINUE
|
||||
WHILE TRUE
|
||||
|
||||
IF int_flag<>0 THEN
|
||||
LET int_flag=0
|
||||
EXIT WHILE
|
||||
END IF
|
||||
|
||||
LET req = com.WebServiceEngine.getHTTPServiceRequest(tout)
|
||||
|
||||
IF req IS NULL THEN -- timeout
|
||||
CALL show_verb( SFMT("HTTP request timeout...: %1", CURRENT YEAR TO FRACTION))
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
|
||||
LET url = req.getURL()
|
||||
LET method = req.getMethod()
|
||||
DISPLAY "url ",url
|
||||
DISPLAY "metodo ", method
|
||||
|
||||
IF method != 'OPTIONS' THEN
|
||||
IF method IS NULL OR method != "POST" THEN
|
||||
IF method == "GET" THEN
|
||||
-- TODO: Send server status page back
|
||||
CALL req.sendTextResponse(200,NULL,"Welcome to dbsync server for MBS ...")
|
||||
ELSE
|
||||
CALL show_err(SFMT("Unexpected HTTP request: %1", method))
|
||||
CALL req.sendTextResponse(400,NULL,"Only POST requests supported")
|
||||
END IF
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
END IF
|
||||
IF method = 'OPTIONS' THEN
|
||||
CALL req.sendTextResponse(200,NULL,"Welcome")
|
||||
END IF
|
||||
LET version = req.getRequestVersion()
|
||||
IF version IS NULL OR version != "1.1" THEN
|
||||
CALL show_err(SFMT("Unexpected HTTP request version: %1", version))
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
LET headers = req.getRequestHeader("DBSync-Client")
|
||||
DISPLAY "header: DBSync-Clent=> ",headers
|
||||
IF headers IS NULL OR headers!= "mbs" THEN
|
||||
CALL show_err(SFMT("Unexpected HTTP request header DBSync-Client: %1", headers))
|
||||
DISPLAY "HEADER: ",headers
|
||||
CALL req.sendTextResponse(400,NULL,"Bad request in Header DBSync-Client")
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
|
||||
|
||||
LET headers = req.getRequestHeader("Content-Type")
|
||||
DISPLAY "content: ",headers
|
||||
IF headers IS NULL OR headers NOT MATCHES "dbsync/json*" THEN -- ;Charset=UTF-8
|
||||
CALL show_err(SFMT("Unexpected HTTP request header Content-Type: %1", headers))
|
||||
CALL req.sendTextResponse(400,NULL,"Bad request, in Header Content-Type")
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
|
||||
IF NOT(read_request(req)) THEN
|
||||
-- si el procesamiento del request da error vuelve al loop
|
||||
CONTINUE WHILE
|
||||
END IF
|
||||
|
||||
LET n = n + 1
|
||||
|
||||
LET d0 = CURRENT
|
||||
|
||||
CALL show_verb( SFMT("oper [%1]: %2", d0, r_cmd.oper) )
|
||||
--CALL show_verb( SFMT("data: %1", r_cmd.data) )
|
||||
DISPLAY "opera ",r_cmd.oper
|
||||
CASE r_cmd.oper
|
||||
WHEN "get_status"
|
||||
|
||||
CALL send_response(req, "SERVER OK")
|
||||
|
||||
WHEN "info"
|
||||
CALL send_response(req, info())
|
||||
WHEN "show_logs"
|
||||
CALL send_response(req, show_logs())
|
||||
WHEN "last_request"
|
||||
CALL send_response(req, last_request())
|
||||
|
||||
WHEN "respuesta"
|
||||
LET last_request = r_cmd.data
|
||||
|
||||
LET last_date = CURRENT
|
||||
CALL send_response(req, last_response:=respuestas(last_request))
|
||||
|
||||
OTHERWISE
|
||||
LET msg="invalid operation: " || NVL(r_cmd.oper," ")
|
||||
CALL show_err(msg)
|
||||
CALL req.sendTextResponse(404,NULL,msg)
|
||||
CONTINUE WHILE
|
||||
END CASE
|
||||
|
||||
LET logs[logs.getLength()+1] = "n:",n USING "<<<<", " ", d0, ' "', r_cmd.oper ,'" '
|
||||
|
||||
END WHILE
|
||||
|
||||
END MAIN
|
||||
|
||||
FUNCTION read_request(req)
|
||||
|
||||
DEFINE req com.HTTPServiceRequest
|
||||
DEFINE cmd STRING,
|
||||
p RECORD
|
||||
oper STRING,
|
||||
data RECORD
|
||||
usuario STRING,
|
||||
clave STRING,
|
||||
codigo STRING
|
||||
END RECORD
|
||||
END RECORD
|
||||
INITIALIZE r_cmd.* TO NULL
|
||||
# DISPLAY "request text: ",req.readTextRequest()
|
||||
TRY
|
||||
CALL req.readTextRequest() RETURNING cmd
|
||||
|
||||
CATCH
|
||||
|
||||
CALL show_err(SFMT("Unexpected HTTP request read exception: %1", STATUS))
|
||||
RETURN FALSE
|
||||
END TRY
|
||||
#LET cmd='{"oper":"rnc","data":{"usuario":"crm_user","clave":"XMarmotech2019","tipo_Documento":1,"rnc":"130337391"}}'
|
||||
IF LENGTH(cmd) == 0 THEN
|
||||
-- la operacion va a estar vacia y va dar error por invalida
|
||||
RETURN TRUE
|
||||
END IF
|
||||
|
||||
TRY
|
||||
|
||||
CALL util.JSON.parse(cmd, r_cmd)
|
||||
|
||||
CATCH
|
||||
|
||||
CALL show_err(SFMT("JSON parse error: %1", STATUS))
|
||||
RETURN FALSE
|
||||
END TRY
|
||||
|
||||
RETURN TRUE
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION send_response(req,res)
|
||||
|
||||
DEFINE req com.HTTPServiceRequest
|
||||
DEFINE res STRING
|
||||
# DISPLAY "response ",res
|
||||
IF res.getLength() > 50 THEN
|
||||
CALL show_verb( SFMT("Response [%1] -> Length: %2", CURRENT YEAR TO SECOND, LENGTH(res)) )
|
||||
ELSE
|
||||
CALL show_verb( SFMT("Response [%1] -> %2.", CURRENT YEAR TO SECOND, res.trim()) )
|
||||
END IF
|
||||
|
||||
CALL req.setResponseCharset("UTF-8")
|
||||
CALL req.setResponseHeader("dbsync-server","result")
|
||||
CALL req.setResponseHeader("Content-Type","dbsync/json")
|
||||
|
||||
CALL req.sendTextResponse(200,NULL,res)
|
||||
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION check_utf8()
|
||||
IF ORD("€") == 8364 AND LENGTH("€") == 1 THEN
|
||||
RETURN 0, NULL
|
||||
ELSE
|
||||
RETURN -1, "Application locale must be UTF-8, with char length semantics"
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION show_verb(msg)
|
||||
DEFINE msg STRING
|
||||
IF dpy_verb THEN
|
||||
DISPLAY msg
|
||||
END IF
|
||||
# IF log_verb THEN
|
||||
# CALL errorlog(msg CLIPPED)
|
||||
# END IF
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION show_err(msg)
|
||||
DEFINE msg STRING
|
||||
DISPLAY "ERROR:",msg
|
||||
# CALL errorlog(msg CLIPPED)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION info()
|
||||
DEFINE b base.StringBuffer
|
||||
LET b = base.StringBuffer.create()
|
||||
CALL b.append("<html><body>")
|
||||
CALL b.append("<a href='/'>[top]<a href=logs>[logs]</a><a href=last_request>[last request]</a>")
|
||||
CALL b.append("<h1>Servidor de sincronizacion para dispositivos moviles</h1>")
|
||||
CALL b.append("local time: " || CURRENT YEAR TO SECOND || "<br>")
|
||||
CALL b.append("uptime: "|| CURRENT YEAR TO SECOND - start_time || "<br>")
|
||||
CALL b.append("<a href=logs>Logs</a><br>")
|
||||
CALL b.append("<a href=last_request>Last request</a><br>")
|
||||
CALL b.append("</body></html>")
|
||||
RETURN b.toString()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION show_logs()
|
||||
DEFINE b base.StringBuffer
|
||||
DEFINE i INT
|
||||
LET b = base.StringBuffer.create()
|
||||
CALL b.append("<html><body>")
|
||||
CALL b.append("<a href='/'>[top]<a href=logs>[logs]</a><a href=last_request>[last request]</a>")
|
||||
CALL b.append("<h1>JSON Sync: Logs</h1>")
|
||||
FOR i = 1 TO logs.getLength()
|
||||
CALL b.append(logs[i])
|
||||
CALL b.append("<br>")
|
||||
END FOR
|
||||
CALL b.append("</body></html>")
|
||||
RETURN b.toString()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION last_request()
|
||||
DEFINE b base.StringBuffer
|
||||
LET b = base.StringBuffer.create()
|
||||
CALL b.append("<html><body>")
|
||||
CALL b.append("<a href='/'>[top]<a href=logs>[logs]</a><a href=last_request>[last request]</a>")
|
||||
CALL b.append("<h1>JSON Sync: Last Request</h1>")
|
||||
CALL b.append("Date:" || last_date)
|
||||
CALL b.append("<h2>Request:</h2>")
|
||||
IF last_request IS NOT NULL THEN
|
||||
CALL b.append("<pre>")
|
||||
CALL b.append(util.JSON.format(last_request))
|
||||
CALL b.append("</pre>")
|
||||
END IF
|
||||
CALL b.append("<h2>Response:</h2>")
|
||||
IF last_response IS NOT NULL THEN
|
||||
CALL b.append("<pre>")
|
||||
CALL b.append(util.JSON.format(last_response))
|
||||
CALL b.append("</pre>")
|
||||
END IF
|
||||
CALL b.append("</body></html>")
|
||||
RETURN b.toString()
|
||||
END FUNCTION
|
||||
|
||||
{FUNCTION usuarios()
|
||||
DEFINE pusuarios DYNAMIC ARRAY OF RECORD
|
||||
usuarios VARCHAR(50),
|
||||
password VARCHAR(50),
|
||||
ocupacion VARCHAR(100),
|
||||
sec_vend INT,
|
||||
nombre VARCHAR(30),
|
||||
email VARCHAR(50)
|
||||
END RECORD
|
||||
DEFINE pusuario RECORD
|
||||
usuarios VARCHAR(50),
|
||||
password VARCHAR(50),
|
||||
ocupacion VARCHAR(100),
|
||||
sec_vend INT,
|
||||
nombre VARCHAR(30),
|
||||
email VARCHAR(50)
|
||||
END RECORD,
|
||||
i SMALLINT,
|
||||
selec STRING
|
||||
|
||||
LET selec ="SELECT a.email,' ',a.ocupacion,a.sec_vend,a.nombre,a.email
|
||||
FROM CRMindata.dbo.vendedores a"
|
||||
PREPARE comando FROM selec
|
||||
|
||||
DECLARE u1 CURSOR FOR comando
|
||||
LET i=0 FOREACH u1 INTO pusuario.* LET i=i+1 LET pusuarios[i].*=pusuario.*
|
||||
DISPLAY "SUBIENDO USUARIOS...."
|
||||
END FOREACH; FREE u1
|
||||
RETURN util.JSON.stringify(pusuarios)
|
||||
END FUNCTION
|
||||
}
|
||||
{
|
||||
FUNCTION geolocalizacion(s)
|
||||
DEFINE s STRING
|
||||
DEFINE file_out RECORD
|
||||
contenido STRING,
|
||||
nomb_arch STRING,
|
||||
lat FLOAT,
|
||||
long FLOAT,
|
||||
i BYTE,
|
||||
file_ext STRING
|
||||
END RECORD
|
||||
DEFINE file_out_mov RECORD
|
||||
contenido STRING,
|
||||
nomb_arch STRING,
|
||||
lat FLOAT,
|
||||
long FLOAT,
|
||||
i BYTE,
|
||||
file_ext STRING
|
||||
END RECORD,
|
||||
|
||||
|
||||
s_out STRING,
|
||||
archivo STRING,
|
||||
borrar INT
|
||||
|
||||
|
||||
DEFINE r RECORD
|
||||
ERROR STRING
|
||||
END RECORD
|
||||
|
||||
LOCATE file_out.i IN MEMORY
|
||||
|
||||
TRY
|
||||
CALL util.JSON.parse(s, file_out)
|
||||
CATCH
|
||||
LET r.error = "FGL ERROR: ", err_get(status)
|
||||
RETURN util.JSON.stringify(r)
|
||||
END TRY
|
||||
|
||||
|
||||
IF os.Path.exists(file_out.nomb_arch) THEN
|
||||
CALL os.Path.delete(file_out.nomb_arch) RETURNING borrar
|
||||
END IF
|
||||
|
||||
CALL file_out.i.writeFile(file_out.nomb_arch)
|
||||
FREE file_out.i
|
||||
|
||||
|
||||
IF os.Path.size(file_out.nomb_arch)>0 THEN
|
||||
|
||||
CALL get_exif_latlong_bdl(file_out.nomb_arch) RETURNING file_out_mov.lat,file_out_mov.long
|
||||
DISPLAY "latitudes ", file_out_mov.lat," LONG ",file_out_mov.long
|
||||
ELSE
|
||||
LET file_out_mov.contenido="NO PUEDO GEOLOCALIZAR ESTA FOTO"
|
||||
END IF
|
||||
LET s_out = UTIL.JSON.stringify(file_out_mov)
|
||||
|
||||
RETURN s_out
|
||||
END FUNCTION
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# Prueba del endpoint datos_cocinas del APIREST (restServer)
|
||||
# Uso: .\probar_datosCocina.ps1 [fechaCorte] (ej: .\probar_datosCocina.ps1 2026-07-01)
|
||||
|
||||
param(
|
||||
[string]$fechaCorte = "2026-07-01",
|
||||
[string]$usuario = "conecta",
|
||||
[string]$clave = "conecta"
|
||||
)
|
||||
|
||||
$url = "https://ws.marmotech.com.do/gas/ws/r/restserver"
|
||||
|
||||
# 'data' es un STRING JSON escapado (el server hace util.JSON.parse sobre ese string)
|
||||
$dataInner = ('{{"usuario":"{0}","clave":"{1}","fechaCorte":"{2}"}}' -f $usuario, $clave, $fechaCorte)
|
||||
$body = @{ oper = "datos_cocinas"; data = $dataInner } | ConvertTo-Json -Compress
|
||||
|
||||
Write-Host "POST $url" -ForegroundColor Cyan
|
||||
Write-Host "Body: $body" -ForegroundColor DarkGray
|
||||
|
||||
$resp = Invoke-RestMethod -Uri $url -Method Post -ContentType "dbsync/json" `
|
||||
-Headers @{ "DBSync-Client" = "mbs" } -Body $body
|
||||
|
||||
$resp | Format-List
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<APPLICATION Parent="defaultgwc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.4js.com/ns/gas/3.20/cfextwa.xsd">
|
||||
<EXECUTION>
|
||||
<PATH>$(res.deployment.path)</PATH>
|
||||
<MODULE>Application.42r</MODULE>
|
||||
</EXECUTION>
|
||||
</APPLICATION>
|
||||
@@ -0,0 +1,63 @@
|
||||
IMPORT util
|
||||
IMPORT os
|
||||
IMPORT security
|
||||
DEFINE j INT,
|
||||
url_folder STRING,
|
||||
tmpfile STRING
|
||||
FUNCTION respuestas(pdata)
|
||||
|
||||
DEFINE pdata STRING,
|
||||
foto_empleado BYTE
|
||||
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
repuesta RECORD
|
||||
num_emp INT,
|
||||
cedula,
|
||||
nombre,
|
||||
id_pregunta,pregunta,repuesta,departamento string
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
selec STRING,
|
||||
url_files STRING
|
||||
|
||||
CALL util.JSON.parse(pdata,p)
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
|
||||
RETURN util.JSON.stringify(p)
|
||||
|
||||
END IF
|
||||
DISPLAY "<RESPUESTA:>USUARIO: ",p.credenciales.usuario," pass ",p.credenciales.clave
|
||||
CONNECT TO "smarmotech" USER p.credenciales.usuario USING p.credenciales.clave
|
||||
IF STATUS < 0 THEN
|
||||
LET p.mensajes.cod_msg=STATUS
|
||||
LET p.mensajes.descripcion = 'ERROR EN CONEXION ',SQLCA.sqlerrm
|
||||
DISCONNECT CURRENT
|
||||
RETURN util.JSON.stringify(p)
|
||||
END IF
|
||||
|
||||
|
||||
LET selec =
|
||||
"INSERT INTO encuestas.dbo.respuestas( cedula,created_at,nombre,num_emp,departamento,respuesta,pregunta,
|
||||
id_pregunta )
|
||||
VALUES ( ?,GETDATE(),?,?,?,?,?,? ) "
|
||||
|
||||
PREPARE comando FROM selec
|
||||
EXECUTE comando USING p.repuesta.cedula,p.repuesta.nombre,p.repuesta.num_emp,p.repuesta.departamento,
|
||||
p.repuesta.repuesta,p.repuesta.pregunta,p.repuesta.id_pregunta
|
||||
|
||||
|
||||
DISCONNECT CURRENT
|
||||
LET p.mensajes.cod_msg=200
|
||||
LET p.mensajes.descripcion = 'ADICION EXITOSA'
|
||||
|
||||
RETURN util.JSON.stringify(p)
|
||||
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,148 @@
|
||||
IMPORT util
|
||||
IMPORT com
|
||||
IMPORT os
|
||||
IMPORT security
|
||||
|
||||
TYPE t_sync_cmd RECORD
|
||||
oper STRING,
|
||||
data STRING
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFINE k,kurl,kbodega STRING,
|
||||
ktrue BOOLEAN
|
||||
DEFINE ku RECORD
|
||||
usuario VARCHAR(50),
|
||||
clave VARCHAR(20),
|
||||
sesion VARCHAR(10)
|
||||
END RECORD
|
||||
LET ku.usuario = 'conecta'
|
||||
LET ku.clave = 'conecta'
|
||||
|
||||
# LET kurl = "https://ws.marmotech.com.do/gas/ws/r/restserver"
|
||||
# LET kurl = "http://10.0.0.6:8098/gas/ws/r/restserver"
|
||||
LET kurl = "http://192.168.40.9/gas/ws/r/restserver"
|
||||
CALL respuestatest(kurl)
|
||||
LET ku.usuario = 'conecta'
|
||||
LET ku.clave = 'conecta'
|
||||
|
||||
END MAIN
|
||||
|
||||
FUNCTION respuestatest(xurl)
|
||||
DEFINE xurl STRING
|
||||
DEFINE p RECORD
|
||||
credenciales RECORD
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD,
|
||||
repuesta RECORD
|
||||
num_emp INT,
|
||||
cedula,
|
||||
nombre,
|
||||
id_pregunta,pregunta,repuesta,departamento string
|
||||
END RECORD,
|
||||
mensajes RECORD
|
||||
cod_msg INT,
|
||||
descripcion STRING
|
||||
END RECORD
|
||||
END RECORD,
|
||||
r_cmd t_sync_cmd
|
||||
|
||||
DEFINE cmd, res, msg,url STRING,
|
||||
ret INT
|
||||
DEFINE r RECORD
|
||||
perror STRING,
|
||||
pbodega SMALLINT
|
||||
END RECORD
|
||||
|
||||
DEFINE data RECORD
|
||||
|
||||
usuario,clave VARCHAR(50)
|
||||
END RECORD
|
||||
|
||||
LET p.credenciales.usuario = 'conecta'
|
||||
LET p.credenciales.clave = 'conecta'
|
||||
|
||||
LET p.repuesta.cedula = '00104581939'
|
||||
LET p.repuesta.departamento='TECNOLOGIA'
|
||||
LET p.repuesta.id_pregunta = 'ENC001'
|
||||
LET p.repuesta.nombre='JUAN FRANCISCO SOTO CONCEPCION'
|
||||
LET p.repuesta.num_emp=3355
|
||||
LET p.repuesta.pregunta='CUAN SATISFECHO USTED SE SIENTE CON EL NIVEL DE SERVICIO DE SU SUPLIDOR INTERNO?'
|
||||
LET p.repuesta.repuesta='1'
|
||||
|
||||
DISPLAY " URL ",xurl
|
||||
LET r_cmd.oper = "respuesta"
|
||||
LET r_cmd.data = util.JSON.stringify(p) -- aca se convierte a string los datos de la operacion
|
||||
LET cmd = util.JSON.stringify(r_cmd)
|
||||
|
||||
CALL sync_send_command(xurl, cmd) RETURNING ret, res
|
||||
DISPLAY "cmd", cmd,"ret ",ret," RES: ",RES
|
||||
IF ret == 0 THEN
|
||||
|
||||
CALL util.JSON.parse(res,P)
|
||||
|
||||
ELSE
|
||||
LET msg=SFMT(%"Connection '%1' failed",r_cmd.oper),"\n",url
|
||||
CALL show_sync_err(msg)
|
||||
|
||||
END IF
|
||||
|
||||
|
||||
END FUNCTION
|
||||
|
||||
|
||||
#
|
||||
## Communications library using com (http or https)
|
||||
#
|
||||
|
||||
FUNCTION sync_send_command(url, cmd)
|
||||
|
||||
DEFINE url, cmd STRING
|
||||
DEFINE result, tmp STRING
|
||||
DEFINE http_req com.HTTPRequest
|
||||
DEFINE http_resp com.HTTPResponse
|
||||
|
||||
|
||||
TRY LET http_req = com.HTTPRequest.Create(url)
|
||||
CALL http_req.setConnectionTimeout(40)
|
||||
CALL http_req.setTimeout(40)
|
||||
CALL http_req.setMethod("POST")
|
||||
CALL http_req.setCharset("UTF-8")
|
||||
CALL http_req.setHeader("DBSync-Client","mbs")
|
||||
CALL http_req.setHeader("Content-Type","dbsync/json")
|
||||
|
||||
CALL http_req.doTextRequest(cmd)
|
||||
LET http_resp=http_req.getResponse()
|
||||
IF http_resp.getStatusCode() != 200 THEN
|
||||
RETURN http_resp.getStatusCode(), http_resp.getStatusDescription()
|
||||
END IF
|
||||
LET tmp = http_resp.getStatusDescription()
|
||||
IF (tmp == "OK" || tmp == "no error" ) THEN
|
||||
RETURN -1, SFMT("HTTP request status description: %1 ",tmp)
|
||||
END IF
|
||||
LET result = http_resp.getTextResponse()
|
||||
CATCH
|
||||
RETURN -2, SFMT("HTTP request error: STATUS=%1 (%2)",STATUS,SQLCA.SQLERRM)
|
||||
END TRY
|
||||
|
||||
RETURN 0, result
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION show_sync_err(msg)
|
||||
DEFINE msg STRING
|
||||
CALL fgl_winmessage(%"ERROR", msg, "exclamation")
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION b64_to_file(str_b64,f_sal)
|
||||
|
||||
DEFINE f_sal,str_b64,str_aux STRING
|
||||
|
||||
TRY
|
||||
CALL security.Base64.SaveBinary(f_sal,str_b64)
|
||||
CATCH
|
||||
DISPLAY " data ",str_b64
|
||||
LET str_aux="Unable to convert Base64 String to file :",STATUS
|
||||
CALL fgl_winmessage("Error",str_aux,"stop")
|
||||
END TRY
|
||||
END FUNCTION
|
||||
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Project defaultApplication="447037195" gstVersion="31408" version="3.3">
|
||||
<Settings>
|
||||
<DynamicProperties version="2">
|
||||
<DynamicProperty description="Accent color (Android 5.0 and later)" initialValue="#9575CD" isDefaultInherited="false" isHidden="false" label="Accent color" name="gma-accent-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Action bar text color (Android 5.0 and later)" initialValue="#EBEBEB" isDefaultInherited="false" isHidden="false" label="Action bar text color" name="gma-actionbar-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Cordova plugins" editorInfo="isDynamic:true;title:Cordova;description:Cordova plugins;icon:checkbox_checked" initialValue="" isDefaultInherited="false" isHidden="false" label="Cordova Plugins" name="gma-cordova" readOnly="false" type="MULTIPLEBOOLEAN"/>
|
||||
<DynamicProperty description="Navigation bar background color (Android 5.0 and later)" initialValue="#5E35B1" isDefaultInherited="false" isHidden="false" label="Navigation bar background color" name="gma-navigationBarBackground-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Primary color (Android 5.0 and later)" initialValue="#5E35B1" isDefaultInherited="false" isHidden="false" label="Primary color" name="gma-primary-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Primary dark color (Android 5.0 and later)" initialValue="#5E35B1" isDefaultInherited="false" isHidden="false" label="Primary dark color" name="gma-primary-dark-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Primary text color (Android 5.0 and later)" initialValue="#000000" isDefaultInherited="false" isHidden="false" label="Primary text color" name="gma-primaryText-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Window backround color (Android 5.0 and later)" initialValue="#ffffff" isDefaultInherited="false" isHidden="false" label="Window background color" name="gma-windowBackground-color" readOnly="false" type="COLOR"/>
|
||||
<DynamicProperty description="Cordova plugins" editorInfo="isDynamic:true;title:Cordova;description:Cordova plugins;icon:checkbox_checked" initialValue="" isDefaultInherited="false" isHidden="false" label="Cordova Plugins" name="gmi-cordova" readOnly="false" type="MULTIPLEBOOLEAN"/>
|
||||
<DynamicProperty description="High-DPI Icon (72x72 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon-hdpi (72x72 px)" name="icon-hdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Low-DPI Icon (36x36 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon-ldpi (36x36 px)" name="icon-ldpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Medium-DPI Icon (48x48 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon-mdpi (48x48 px)" name="icon-mdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Extra High-DPI Icon (96x96 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon-xhdpi (96x96 px)" name="icon-xhdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Extra Extra High-DPI Icon (144x144 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon-xxhdpi (144x144 px)" name="icon-xxhdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="1024x1024 pixel icon (used for App Store)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (1024x1024 px)" name="icon1024x1024" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="120x120 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (120x120 px)" name="icon120x120" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="152x152 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (152x152 px)" name="icon152x152" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="167x167 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (167x167 px)" name="icon167x167" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="180x180 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (180x180 px)" name="icon180x180" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="29x29 pixel icon (used for settings)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (29x29 px)" name="icon29x29" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="40x40 pixel icon (used for settings)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (40x40 px)" name="icon40x40" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="58x58 pixel icon (used for settings)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (58x58 px)" name="icon58x58" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="60x60 pixel icon (used for settings)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (60x60 px)" name="icon60x60" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="76x76 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (76x76 px)" name="icon76x76" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="80x80 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (80x80 px)" name="icon80x80" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="87x87 pixel icon (used for home screen)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Icon (87x87 px)" name="icon87x87" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 5/5S/SE (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (640x1136 px)" name="launchScreen" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPad (landcape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1024x768 px)" name="launchScreen1024x768" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone X (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1125x2436 px)" name="launchScreen1125x2436" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 5/5S/SE (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1136x640 px)" name="launchScreen1136x640" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 6+/6s+/7+/8+ (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1242x2208 px)" name="launchScreen1242x2208" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 6/6s/7/8 (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1334x750 px)" name="launchScreen1334x750" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPad (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1536x2048 px)" name="launchScreen1536x2048" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for 10.5" iPad Pro (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (1668x2224 px)" name="launchScreen1668x2224" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPad (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2048x1536 px)" name="launchScreen2048x1536" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for 12.9" iPad Pro (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2048x2732 px)" name="launchScreen2048x2732" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 6+/6s+/7+/8+ (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2208x1242 px)" name="launchScreen2208x1242" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for 10.5" iPad Pro (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2224x1668 px)" name="launchScreen2224x1668" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone X (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2436x1125 px)" name="launchScreen2436x1125" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for 12.9" iPad Pro (landscape)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (2732x2048 px)" name="launchScreen2732x2048" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPhone 6/6s/7/8 (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (750x1334 px)" name="launchScreen750x1334" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen for iPad (portrait)" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (768x1024 px)" name="launchScreen768x1024" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Launch screen Storyboard file (Created from Xcode)" editorInfo="filters:*.storyboard *.xib;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Launch Screen (Storyboard file)" name="launchScreenXib" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Package identifier" initialValue="" isDefaultInherited="false" isHidden="false" label="ID" name="packageId" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Label of the package" initialValue="" isDefaultInherited="false" isHidden="false" label="Label" name="packageLabel" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Version of the package" initialValue="1" isDefaultInherited="false" isHidden="false" label="Version" name="packageVersion" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty description="Version of the package displayed to the user" initialValue="1" isDefaultInherited="false" isHidden="false" label="VersionName" name="packageVersionName" readOnly="false" type="TEXT"/>
|
||||
<DynamicProperty editorInfo="title:Permissions;description:Android permissions;icon:checkbox_checked;contains:ACCEPT_HANDOVER|ACCESS_CHECKIN_PROPERTIES|ACCESS_COARSE_LOCATION|ACCESS_FINE_LOCATION|ACCESS_LOCATION_EXTRA_COMMANDS|ACCESS_NETWORK_STATE|ACCESS_NOTIFICATION_POLICY|ACCESS_WIFI_STATE|ACCOUNT_MANAGER|ADD_VOICEMAIL|ANSWER_PHONE_CALLS|BATTERY_STATS|BIND_ACCESSIBILITY_SERVICE|BIND_APPWIDGET|BIND_AUTOFILL_SERVICE|BIND_CARRIER_MESSAGING_SERVICE|BIND_CARRIER_SERVICES|BIND_CHOOSER_TARGET_SERVICE|BIND_CONDITION_PROVIDER_SERVICE|BIND_DEVICE_ADMIN|BIND_DREAM_SERVICE|BIND_INCALL_SERVICE|BIND_INPUT_METHOD|BIND_MIDI_DEVICE_SERVICE|BIND_NFC_SERVICE|BIND_NOTIFICATION_LISTENER_SERVICE|BIND_QUICK_SETTINGS_TILE|BIND_PRINT_SERVICE|BIND_REMOTEVIEWS|BIND_SLICE|BIND_SCREENING_SERVICE|BIND_TELECOM_CONNECTION_SERVICE|BIND_TEXT_SERVICE|BIND_TV_INPUT|BIND_VISUAL_VOICEMAIL_SERVICE|BIND_VOICE_INTERACTION|BIND_VPN_SERVICE|BIND_VR_LISTENER_SERVICE|BIND_WALLPAPER|BLUETOOTH|BLUETOOTH_ADMIN|BLUETOOTH_PRIVILEGED|BODY_SENSORS|BROADCAST_PACKAGE_REMOVED|BROADCAST_SMS|BROADCAST_STICKY|BROADCAST_WAP_PUSH|C2DM_RECEIVE|C2D_MESSAGE|CALL_PHONE|CALL_PRIVILEGED|CAMERA|CAPTURE_AUDIO_OUTPUT|CAPTURE_SECURE_VIDEO_OUTPUT|CAPTURE_VIDEO_OUTPUT|CHANGE_COMPONENT_ENABLED_STATE|CHANGE_CONFIGURATION|CHANGE_NETWORK_STATE|CHANGE_WIFI_MULTICAST_STATE|CHANGE_WIFI_STATE|CLEAR_APP_CACHE|CONTROL_LOCATION_UPDATES|DELETE_CACHE_FILES|DELETE_PACKAGES|DIAGNOSTIC|DISABLE_KEYGUARD|DUMP|EXPAND_STATUS_BAR|FACTORY_TEST|GET_ACCOUNTS|GET_ACCOUNTS_PRIVILEGED|GET_PACKAGE_SIZE|GET_TASKS|GLOBAL_SEARCH|INSTALL_LOCATION_PROVIDER|INSTALL_PACKAGES|INSTALL_SHORTCUT|INSTANT_APP_FOREGROUND_SERVICE|INTERNET|KILL_BACKGROUND_PROCESSES|LOCATION_HARDWARE|MANAGE_DOCUMENTS|MANAGE_OWN_CALLS|MASTER_CLEAR|MEDIA_CONTENT_CONTROL|MODIFY_AUDIO_SETTINGS|MODIFY_PHONE_STATE|MOUNT_FORMAT_FILESYSTEMS|MOUNT_UNMOUNT_FILESYSTEMS|NFC|NFC_TRANSACTION_EVENT|PACKAGE_USAGE_STATS|PERSISTENT_ACTIVITY|PROCESS_OUTGOING_CALLS|READ_CALENDAR|READ_CALL_LOG|READ_CONTACTS|READ_EXTERNAL_STORAGE|READ_FRAME_BUFFER|READ_INPUT_STATE|READ_LOGS|READ_PHONE_NUMBER|READ_PHONE_NUMBERS|READ_PHONE_STATE|READ_SMS|READ_SYNC_SETTINGS|READ_SYNC_STATS|READ_VOICEMAIL|REBOOT|RECEIVE_BOOT_COMPLETED|RECEIVE_MMS|RECEIVE_SMS|RECEIVE_WAP_PUSH|RECORD_AUDIO|REORDER_TASKS|REQUEST_COMPANION_RUN_IN_BACKGROUND|REQUEST_COMPANION_USE_DATA_IN_BACKGROUND|REQUEST_DELETE_PACKAGES|REQUEST_IGNORE_BATTERY_OPTIMIZATIONS|REQUEST_INSTALL_PACKAGES|RESTART_PACKAGES|SEND_RESPOND_VIA_MESSAGE|SEND_SMS|SET_ALARM|SET_ALWAYS_FINISH|SET_ANIMATION_SCALE|SET_DEBUG_APP|SET_PREFERRED_APPLICATIONS|SET_PROCESS_LIMIT|SET_TIME|SET_TIME_ZONE|SET_WALLPAPER|SET_WALLPAPER_HINTS|SIGNAL_PERSISTENT_PROCESSES|STATUS_BAR|SYSTEM_ALERT_WINDOW|TRANSMIT_IR|UNINSTALL_SHORTCUT|UPDATE_DEVICE_STATS|USE_FINGERPRINT|USE_SIP|VIBRATE|WAKE_LOCK|WRITE_APN_SETTINGS|WRITE_CALENDAR|WRITE_CALL_LOG|WRITE_CONTACTS|WRITE_EXTERNAL_STORAGE|WRITE_GSERVICES|WRITE_SECURE_SETTINGS|WRITE_SETTINGS|WRITE_SYNC_SETTINGS|WRITE_VOICEMAIL" initialValue="ACCESS_NETWORK_STATE||ACCESS_WIFI_STATE||CHANGE_NETWORK_STATE||INSTALL_SHORTCUT||INTERNET||MOUNT_FORMAT_FILESYSTEMS||READ_LOGS" isDefaultInherited="false" isHidden="false" label="Permissions" name="permissions" readOnly="false" type="MULTIPLEBOOLEAN"/>
|
||||
<DynamicProperty description="Requirements" editorInfo="title:Requirements;description:iOS Requirements;icon:checkbox_checked;contains:accelerometer|auto-focus-camera|armv6|armv7|bluetooth-le|camera-flash|front-facing-camera|gamekit|gps|gyroscope|healthkit|magnetometer|metal|microphone|location-services|opengles-1|opengles-2|opengles-3|peer-peer|sms|still-camera|telephony|video-camera|wifi" initialValue="wifi" isDefaultInherited="false" isHidden="true" label="Requirements" name="required" readOnly="false" type="MULTIPLEBOOLEAN"/>
|
||||
<DynamicProperty description="High-DPI Status Icon (36x36 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Status Icon-hdpi (36x36 px)" name="status-icon-hdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Medium-DPI Status Icon (24x24 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Status Icon-mdpi (24x24 px)" name="status-icon-mdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicProperty description="Extra High-DPI Status Icon (48x48 px) path" editorInfo="filters:*.png;openDirDialog:true;replaceDocPath:$(ProjectDir)" initialValue="" isDefaultInherited="false" isHidden="false" label="Status Icon-xhdpi (48x48 px)" name="status-icon-xhdpi" readOnly="false" type="FILE"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Android" label="Android" name="AndroidGroup" properties="packageVersionName;gma-primary-color;gma-primary-dark-color;gma-accent-color;gma-actionbar-color;gma-primaryText-color;gma-windowBackground-color;gma-navigationBarBackground-color;icon-ldpi;icon-mdpi;icon-hdpi;icon-xhdpi;icon-xxhdpi;status-icon-mdpi;status-icon-hdpi;status-icon-xhdpi;permissions;gma-cordova"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="Package" label="Package" name="PackageGroup" properties="packageId;packageLabel;packageVersion"/>
|
||||
<DynamicPropertyGroup collapsed="false" description="iOS" label="iOS" name="iOSGroup" properties="launchScreen;launchScreen1136x640;launchScreen750x1334;launchScreen1334x750;launchScreen1242x2208;launchScreen2208x1242;launchScreen1125x2436;launchScreen2436x1125;launchScreen768x1024;launchScreen1024x768;launchScreen1536x2048;launchScreen2048x1536;launchScreen2224x1668;launchScreen1668x2224;launchScreen2048x2732;launchScreen2732x2048;launchScreenXib;icon29x29;icon40x40;icon58x58;icon60x60;icon76x76;icon80x80;icon87x87;icon120x120;icon152x152;icon167x167;icon180x180;icon1024x1024;required;gmi-cordova"/>
|
||||
</DynamicProperties>
|
||||
<NodeInfos version="1">
|
||||
<NodeInfo mimeType="pm/package" properties="packageId;packageLabel;packageVersion;packageVersionName;launchScreen;launchScreen1136x640;launchScreen750x1334;launchScreen1334x750;launchScreen1242x2208;launchScreen2208x1242;launchScreen1125x2436;launchScreen2436x1125;launchScreen768x1024;launchScreen1024x768;launchScreen1536x2048;launchScreen2048x1536;launchScreen2224x1668;launchScreen1668x2224;launchScreen2048x2732;launchScreen2732x2048;launchScreenXib;icon29x29;icon40x40;icon58x58;icon60x60;icon76x76;icon80x80;icon87x87;icon120x120;icon152x152;icon167x167;icon180x180;icon1024x1024;gma-primary-color;gma-primary-dark-color;gma-accent-color;gma-actionbar-color;gma-primaryText-color;gma-windowBackground-color;gma-navigationBarBackground-color;icon-ldpi;icon-mdpi;icon-hdpi;icon-xhdpi;icon-xxhdpi;status-icon-mdpi;status-icon-hdpi;status-icon-xhdpi;permissions;required;gma-cordova;gmi-cordova"/>
|
||||
</NodeInfos>
|
||||
</Settings>
|
||||
<LanguageList version="1.0"/>
|
||||
<PlatformList version="1.0"/>
|
||||
<Group environment="dirlist:DBPATH=$(ProjectDir)/database;$(DBPATH),dirlist:FGLIMAGEPATH=$(ProjectDir)/images;$(FGLDIR)/lib/image2font.txt;$(ProjectDir);$(FGLIMAGEPATH)" id="20809256" label="Project" language="Genero">
|
||||
<Library binaryName="Config" id="118222984" label="Config"/>
|
||||
<Application binaryName="restserver" dependencies="159917928,212784684,455109296" id="400358049" label="restserver">
|
||||
<File filePath="mbs_sync_server_com.4gl"/>
|
||||
<File filePath="respuestas.4gl"/>
|
||||
</Application>
|
||||
<Group id="12325585" label="TEST">
|
||||
<Application binaryName="otrotest" id="640105168" label="otrotest">
|
||||
<File filePath="json_test.4gl"/>
|
||||
</Application>
|
||||
<Application binaryName="testrespuesta" id="447037195" label="testrespuesta">
|
||||
<File filePath="tests/respuestatest.4gl"/>
|
||||
</Application>
|
||||
</Group>
|
||||
</Group>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user