Ir al contenido principal

DELA

Fuente información: http://online-help.sageerpx3.com/erp/11/staticpost/dela/?highlight=dela


Dela is used to delete elements from single-sized arrays, from a given index.

Syntax

  Dela START ARRAY_LIST
  Dela START, NUMBER ARRAY_LIST
  Dela START, NUMBER, LIMIT ARRAY_LIST
  • START is an integer expression that gives the index in the arrays from which the deletions are made. It cannot exceed the highest index or fall short of the smallest index available in the array list.
  • NUMBER is an integer expression that gives the number of indexes to be deleted. It must be strictly positive. If not given by the syntax, '1' will be used.
  • LIMIT is an integer expression that gives the index in the arrays where the deletion ends. LIMIT cannot exceed the highest index and the smallest index available in the array list.
  • ARRAY_LIST is a list of arrays variable (at least one), separated by commas.

Examples:

Let's imagine we have three arrays called COMPOSER(1..10), NAME(1..10), and BIRTH_YEAR(1..10) that have at the beginning the following values:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BUXTEHUDEDietrich1637
2BACHJohann Sebastian1685
3MOZARTWolfgang Amadeus1756
4BEETHOVENLudwig1770
5SCHUBERTFrantz1797
6WAGNERRichard1813
7STRAUSSRichard1864
8SCHOENBERGArnold1874
9BERGAlban1885
10STOCKHAUSENKarlheintz1928

After execution of:

Dela 1 COMPOSER, NAME, BIRTH_YEAR

The result will be the following. The empty lines at the end of the arrays are not listed:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2MOZARTWolfgang Amadeus1756
3BEETHOVENLudwig1770
4SCHUBERTFrantz1797
5WAGNERRichard1813
6STRAUSSRichard1864
7SCHOENBERGArnold1874
8BERGAlban1885
9STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 2,3 COMPOSER, NAME, BIRTH_YEAR

The result will become:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3STRAUSSRichard1864
4SCHOENBERGArnold1874
5BERGAlban1885
6STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 3,2,5 COMPOSER, NAME, BIRTH_YEAR

The result will become:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3BERGAlban1885
40
50
6STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 6,1 COMPOSER, NAME, BIRTH_YEAR

The result will become:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3BERGAlban1885

Description and comments

Dela is used to delete elements (by default 1) from a set of single-sized arrays.

In every table, the elements are shifted from the end of the table (this is the default value for LIMIT) by a number of positions equal to NUMBER. The last NUMBER elements in the table are set to null values (0 for numeric values, null date for dates, and empty character strings for strings).

When LIMIT has a value that is smaller than the lowest limit of the arrays, elements from the START position to the LIMIT (inclusively) are shifted, the array elements after LIMITS are not shifted, and the NUMBER elements from position LIMIT-NUMBER+1 to LIMIT are then set to null values.

Associated errors

8At least one of the indexes is outside the limits of one of the arrays.
10START, NUMBER, or LIMIT are not numeric values.
50NUMBER is less or equal to 0.
55At least one of the arrays is not single sized.

Entradas populares de este blog

Valores de fstat

Fstat fstat  is a numeric status that is returned upon execution of a database operation, a sequential file operation, or a lock instruction. Syntax fstat Examples # MYTABLE is a table with a key called KEY1, that has a unique component called KEYVAL # Create a record in the table MYTABLE with they key value 1 if it doesn't exist Local File MYTABLE [MYT] Read [MYT]KEY1=1 If fstat [MYT]KEYVAL=1 : Write [MYT] If fstat MSG="The key was created in the mean time" Else MSG="Key created" Endif Else MSG="Key already exists" Endif Details fstat  is always set to '0' if the operation is successfully completed, and has a non-null value if there is an error: In a sequential read ( Getseq  and  Rdseq ),  fstat  is set to '1' at the end of the file. On  Lock ,  fstat  is set to '1' if the lock could not be performed. For a database operation ( Read ,  Look ,  Readlock ,  For ,  Write ,  ...

SAGE X3 SILENT IMPORT (IMPORTSIL) WITH ERROR CATCHING

FUENTE ORIGINAL: https://pluginx3.com/en/blog/post/sage-x3-silent-import-importsil-with-error-catching.html You already know how to manually generate a CSV file in order to import it threw a template in Sage X3. But If you wonder how to catch detailed errors after a silent import here is the solution. Sometimes you need to catch the incoming errors in order to alert the end-user regarding an issue. Closed period, wrong date etc …. Unfortunalty the standard Sage X3 silent import function doesn’t natively show the detailed errors during the import process. Call IMPORTSIL([M:IMP2]MODIMP,[M:IMP2]NOMIMP) From GIMPOBJ And the standard function ERR_IMPORT will only show the overall status of the importation and not the detailed errors. IMPORTSIL function is pushing all the log data into a tracefile in order to avoid any popup on end-user screen. So you have a log file available in order to search for errors in it. Sage X3 runtime is using the same principals standards as any shell for log...

Sage X3 Create a new CLOB Text

Here how to create a CLOB text Funprog F_CRELOB ( YABRFIC , YTEXTE ) Value Char YABRFIC Value Char YTEXTE Local Char XXRTFTXT ( 250 ) ( 3 ) XXRTFTXT ( 0 ) = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 MS Sans Serif;}}\viewkind4\uc1\pard\f0\fs17 " XXRTFTXT ( 1 ) = YTEXTE XXRTFTXT ( 2 ) = "\par}" Local Char X_RET Local Integer XXOK Local Char XCHAMPLIEN : XCHAMPLIEN = "YYYY" Global Char YYYY : YYYY = YABRFIC Local Clbfile WWCLOB Local Mask ACLOB [ M :ACL ] Setlob WWCLOB With XXRTFTXT [ M :ACL ] CLOB = WWCLOB Call CRE_CLOB_ACL ( XCHAMPLIEN , XXOK ) From TRTX3TEX Close Local Mask [ M :ACL ] X_RET = YYYY Kill YYYY End X_RET