Date Type programming

We need to write an ABAP program, which includes getting access to the Dates in a Transaction.  These Dates are dynamically computed at run time, based on Date Rules, which are created when configuring Date Management in the IMG.  Has anyone does this?  Are there Function Modules, which are delivered to assist?
The way it works is that a date is entered, such as Start Date, then a Date Rule is chosen for End Date, adn teh system automatically computes the End Date and displays it in the transaction.
Our specific case is to get to the CRM system Opportunity Milestone dates; however, since IMG Date Management and Configuration is available in all SAP systems, I assume there are also other transactions in other SAP systems (R3, etc) which also dynamically calculate dates based on teh cofigured rules - so that is why I open this question out to anyone who may have been called upon to do similar Date calcluation programming.

SG_PS_GET_LAST_DAY_OF_MONTH
BKK_GET_MONTH_LASTDAY     
SLS_MISC_GET_LAST_DAY_OF_MONTH
RE_LAST_DAY_OF_MONTH     
check the above FM's.
Regards
vijay

Similar Messages

  • Data type selection Problem in ztable to use in the Module Pool Program

    Dear Experts,
    I have created a z-table which is used in Module Pool Program in which i have to save the information saved by the endusers in z-table. But the problem comming is that the amount of information saved by the endusers is so havey & our table is just limited for the 50 characters which is not sufficiet. So I urge you to please tell me what & which type of data type should I have to use to store maximum amount of information in our zt-able which is available in SAP ECC6.0.
    Thanks & Regards,
    Akg

    Dear Akg,
    u can resolve ur problem in following ways,
    1. You can declare the field in a table without an Data element.
          i.e. In the length field . using F4 help in length field how many characters u want u enter.
    2. In the same u can search for an standard data element and use the same.
    3. Creating an custom data element .
    Reward if helps to u!!!
    Regards,
    MNR

  • ERROR OGG-01148 programming error, data type not supported for column

    I am getting following error when I put null in insert statement
    2011-03-31 18:30:45 ERROR OGG-01148 programming error, data type not supported for column TXID in table advoss.tblaudittrail.
    I am replicating MySQL 5.5.9 to Oracle 11g rel2 via goldengate 11

    I am able to diagnose what is cuasing the problem
    unsigned flag was the culprit of this error
    I am able to insert null after removing unsigned flag.
    thank you very much for your kind support

  • Unicode Program : # is appearing for data types declared as char type

    Hi friends,
    I have copied one program on unicode system to unicode system. As only char type data types are allowed, i converted structure EP to char type only. Now during execution it is giving dump because it is showing value as '#' for 2 fields whos original data type was P and currency. How shall i convert them? Any suggession will helpful.
    Abhijit

    Hi Sandeep,
    This is my piece of code : Initially structure EP was used in read dataset which is of different datatypes. so i created similar structure ep_c with data type as char. As u suggested, i  tried to declare field BETRG as type currency. Then also it gave dump. (Runtime errors: UC_OBJECTS_NOT_CHARLIKE). For 2 fields BETRG and POHRS which is of currency and dec type originally, i am getting values as '#' causing in dump. In non unicode program both fields have values as '0.00' If i put these values in debugging then after execution, program comes to selection screen! Kindly advise.
    Data : komok(2) type c,
           betrg(18) TYPE c,
             betrg type betrg,
             pohrs(10) type c.
    open dataset seq-in for input in text mode encoding default ignoring conversion errors.
          if sy-subrc = 0.
            do.
              read dataset seq-in into ep_c.
              case sy-subrc.
                when 0.
                  move :ep_c-id to ep-id,
                        ep_c-text to ep-text,
                        ep_c-abkrs to ep-abkrs,

  • How to get data type of variable in program..

    Hi ABAP Guru.
    I need to know how to get data type of variable or any structure field.. because I got short dump when use command REPLACE ALL OCCURANCE ... with variable/structure field that has data type I or P, I think it should be used with data type CHAR only, So I need to check the data type first.
    Please give me your advice
    Thank you all.
    Nattapash C.

    data : v_value type i,
             v_char(10) type c.
    v_value = 10.
    move v_value to v_char.
    REPLACE ALL OCCURRENCES of '#' from v_char....
    Best regards,
    Prashant

  • How to change existing terminals from "view as icon" to view as data type through program

    I got some legacy LabVIEW code from other people. And there are tons of existing terminals displayed as icon. Is there any way to do batch process to change all of them to view as data type?
    Thanks a lot!
    Solved!
    Go to Solution.

    If you have a VI in 2010, you can save it as far back as 8.0.  There is a thread on this forum dedicated to downconvert requests (and on for upconvert, as well).  So post your VI there, and it will probably be converted quickly.
    Scripting has existed in LabVIEW since about version 5.1.  It was created to support scripting LabVIEW code in products such as the DAQ Assistant and Motion Assistant.  The first product to use this technology was the Vision Assistant.  However, the early versions are very primitive with limited or no support for common functions (e.g. Delete).  Usually, support was added when it was needed for a project.  Scripting took a huge leap in quality when LabVIEW 7.0 was released, since it is used behind the scenes to generate the code for Express VIs (which were introduced in 7.0).  Scripting steadily improved in quality and features until it was released to general use in LabVIEW 2009.  We are still working to expose all the development time functionality.
    Take home message is that you can downconvert your VI, but there is no guarantee that the functionality you have in LabVIEW 2010 will exist in 7.1.  While this is true in general, it is especially true of scripting functions.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • I am supppose to wire up a cluster to a callng library function thru the use of the "adapt to type" configuration.But the program lie in the data types in the struct.

    i have call library function that contain two arguement,two inputs i mean.The first input is simply an int which can be easily matched by labview data type.The second input is declared as a structure which i match it thru a cluster by using the adapt to type means.
    However,inside the structure there are four variables,two of which is PULONG and the other two is ULONG.Inside my cluster i can match the ULONG by a 32bit unsign integer labview data type but how can i match the PULONG with a labview data type?

    There is a great KnowledgeBase entry that discusses using the "adapt to type" option in a Call Library Function, and specifically using clusters.
    This KB, titled "I'm Having Trouble Accessing the Members of a Cluster Passed to a Shared Library Such as a DLL" is available at:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/bc2a65c0fe2868a1862566e80067c4e4?OpenDocument
    I found this article by going to www.ni.com, clicking on the KnowledgeBase link, and searching for "call library cluster."

  • SharePoint 2013 List - Multiple Data Types in the Same List

    In the same SharePoint 2013 list in Data Sheet View, I want to have one column where my end users enter inputs for KPIs. There are 3 groups of KPIs (A, B and C) and they each have different data types (A-string, B-decimal, C-percentage) and I want to be
    able to base their input options off of the KPI type
    Does anyone have any suggestions on how I can leverage my parent-child relationships so when an end user...
    1. Picks KPI type A, they can select from a choice filed (Green, Yellow, Red)
    2. Picks KPI Type B, they can enter a decimal (-1.000 to 2.000)
    3. Picks KPI Type C, they can enter a percentage (-100.00% to 100.00%
    I'm using if I want to keep this in one list, one column and in data sheet view that the out of the box solutions won't meet my requirements. I was looking at some solutions from Bamboo (Lookup Selector Column) but don't think that applies here.
    Thanks!
    Johnny

    Hi Johnny, you can accomplish this using cascading lookups in InfoPath if that program is available to you. Otherwise, if you want a 3rd party product, we use the Kwiz cascading lookup and it's worked wonders for us:
    http://www.kwizcom.com/sharepoint-add-ons/sharepoint-cascading-lookup-plus/overview/
    Note: I have no relationship with Kwiz, just vouching for the product.
    cameron rautmann

  • Arrays of Different Data Types

    Hi, I am studing Java Development as 2 of my units (Programming Theory and Programming Practice), and I have a problem with a program which involves an array that contains two data types; int and long. The program is designed to store Student ID's and Exam Marks (1 Exam Mark per ID). The program is designed to use sorting, and the array is to be populated at the start of program execution. It compiles fine, but I get an error when the program is running as soon as you input the first value. The program is not very complex, but I need to understand how to get this fixed and why is isn't already. Any help is appreciated as this is a genuine problem. This program follows a consistent style template given to me by my tutor. The source is given below, and I appreciate any positive response.
    Thanks in advance...
    Aaron
         Name: Aaron Allport ([email protected])
         Assignment Number: 7
         Program Title/Topic: Student Marks/ID's with use of Array's
         Program Description: Using arrays and search/sort methods,
                                  write a program that keeps a record of
                                  students on a module, and allows the
                                  data to be manipulated.
         Course Title/Unit: BTEC National in Computing
    import javax.swing.JOptionPane;
    class StudentRecord
         int mark;
         long sID;
    public class Assignment7
         public static void main(String args[])
              final int numOfStudents = 11;
              String highestMark;
              String lowestMark;
              String examMark;
              long studentID = 00000000;
              String menuChoice;
              StudentRecord module[] = new StudentRecord[numOfStudents];
              inputRecords(module, numOfStudents);
              do
              menuChoice = JOptionPane.showInputDialog(null,
                   "STUDENT MODULE MARKS\n\n" +
                   "1. Find student with highest mark\n" +
                   "2. Find student with lowest mark\n" +
                   "3. Find grade for a given student\n" +
                   "4. Sort records by Student ID\n" +
                   "5. Sort records by Student Mark\n" +
                   "6. Display all records");
                        if (menuChoice.equals("1"))
                             highestMark = findHighest(module, numOfStudents);
                        else if (menuChoice.equals("2"))
                             lowestMark = findLowest(module, numOfStudents);
                        else if (menuChoice.equals("3"))
                             examMark = findGrade(module, numOfStudents, studentID);
                        else if (menuChoice.equals("4"))
                             studentIDSort(module, numOfStudents);
                             displayData(module, numOfStudents);
                        else if (menuChoice.equals("5"))
                             markSort(module, numOfStudents);
                             displayData(module, numOfStudents);
                        else if (menuChoice.equals("6"))
                             displayData(module, numOfStudents);
                   } while (menuChoice.equalsIgnoreCase("Q") == false);     
                   System.exit(0);
         public static void inputRecords(StudentRecord module[], int numOfStudents)
              int i;
              String inputMark;
              String inputStudentID;
              for (i = 1; i < numOfStudents; i++)
                   module[ i] = new StudentRecord();
                   inputStudentID = JOptionPane.showInputDialog(null,
                                       "Please enter Student ID for position " + i + ":");
                   module[ i].sID = Long.parseLong(inputStudentID);
                   inputMark = JOptionPane.showInputDialog(null,
                                       "Please enter Student Mark for position " + i + ":");
                   module[ i].mark = Integer.parseInt(inputMark);
         public static String findHighest(StudentRecord module[], int numOfStudents)
              int highStudentID;
              int j;
              StudentRecord temp = new StudentRecord();
              boolean intChange = true;
              int pass = 1;
              String outputMark;
              String outputSID;
              while((pass <= numOfStudents - 1) && (intChange))
                   intChange = false;
                   for (j = 1; j <= numOfStudents - pass; j++)
                        module[j] = new StudentRecord();
                        if(module[j].mark > module[j + 1].mark)
                             intChange = true;
                             temp.mark = module[j].mark;
                             temp.sID = module[j].sID;
                             module[j] = module[j + 1];
                             module[j + 1].mark = temp.mark;
                             module[j + 1].sID = temp.sID;
                   pass++;
              outputSID = String.valueOf(module[module.length].sID);
              outputMark = String.valueOf(module[module.length].mark);
              return (outputSID + " " + outputMark);
         public static String findLowest(StudentRecord module[], int numOfStudents)
              String outputMark;
              String outputSID;
              int j;
              StudentRecord temp = new StudentRecord();
              boolean intChange = true;
              int pass = 1;
              while((pass <= numOfStudents - 1) && (intChange))
                   intChange = false;
                   for (j = 1; j <= numOfStudents - pass; j++)
                        module[j] = new StudentRecord();
                        if(module[j].mark > module[j + 1].mark)
                             intChange = true;
                             temp.mark = module[j].mark;
                             temp.sID = module[j].sID;
                             module[j] = module[j + 1];
                             module[j + 1].mark = temp.mark;
                             module[j + 1].sID = temp.sID;
                   pass++;
              outputSID = String.valueOf(module[1].sID);
              outputMark = String.valueOf(module[1].mark);
              return (outputSID + " " + outputMark);
         public static String findGrade(StudentRecord module[], int numOfStudents, long studentID)
              String foundGrade = "";
              int i;
              String outputSID;
              String outputMark;
              for (i = 1; i <= module.length; i++)
                   module[ i] = new StudentRecord();
                   if (studentID == module[ i].sID)
                        outputSID = String.valueOf(module[ i].sID);
                        outputMark = String.valueOf(module[ i].mark);
                        foundGrade = (outputSID + " " + outputMark);
              if (foundGrade == "")
                   JOptionPane.showMessageDialog(null,
                        "No grade found for Student: " + studentID);
              return foundGrade;
         public static void studentIDSort(StudentRecord module[], int numOfStudents)
              int i;
              int j;
              StudentRecord temp = new StudentRecord();
              for (i = (module.length - 1); i >= 0; i--)
                   for (j = 1; j <= i; j++)
                        module[j] = new StudentRecord();
                        if (module[j - 1].sID > module[j].sID)
                             temp = module[j - 1];
                             module[j - 1] = module[j];
                             module[j] = temp;
         public static void markSort(StudentRecord module[], int numOfStudents)
              int i;
              int j;
              StudentRecord temp = new StudentRecord();
              for (i = (module.length - 1); i >= 0; i--)
                   for (j = 1; j <= i; j++)
                        module[j] = new StudentRecord();
                        if (module[j - 1].mark > module[j].mark)
                             temp = module[j - 1];
                             module[j - 1] = module[j];
                             module[j] = temp;
         public static void displayData(StudentRecord module[], int numOfStudents)
              String outputMessage = "";
              int i;
              for (i = 1; i <= module.length; i++)
                   module[ i] = new StudentRecord();
                   outputMessage += (module[ i].sID + " " + module[ i].mark + "\n");
              JOptionPane.showMessageDialog(null,
                   "Data Display\n" +
                   "**** *******\n\n" +
                   outputMessage,
                   "Data Display", JOptionPane.INFORMATION_MESSAGE);
    }

    Try this piece of code...... I adapted it to your program, so it starts from 1. You should pass numOfStudents - 1 as numOfStudents to don't get the notorious error =D
    if (menuChoice.equals("1"))
    findHighest(module, numOfStudents - 1);
    I added the println statement because in your prog isn't present an output routine (well, at last I didn't see it..... maybe because I'm sleepy =) )
    public static void findHighest(StudentRecord module[], int numOfStudents)
    String outputMark;
    String outputSID;
    StudentRecord retValue = new StudentRecord();
    retValue.sID = module[1].sID;
    retValue.mark = module[1].mark;
    for (int i = 2; i <= numOfStudents; i++) {
         if (module.mark > retValue.mark) {
         retValue.sID = module[i].sID;
         retValue.mark = module[i].mark;
    outputSID = String.valueOf(retValue.sID);
    outputMark = String.valueOf(retValue.mark);
    System.out.println(outputSID + " " + outputMark);
    Hope it can help you

  • Saving cluster of different data types to a file

    Hi,
    I use LV 8.6 SDK. I need to save clusters of different data types to a file on a disk, row by row.
    To be specific: I have a program that performs various investigations on a signal collected by DAQmx. Each time the quality of the signal is not in a specified boundaries, i get an indication. It is a cluster of time stamp, string, dbl, and Boolean. The program is supposed to run for few weeks in a row so there can be a lot of these indications. I expect to have around 200 000 rows a week (Altogether, divided into several groups).  
    I thought about TDMS but I am not able to save such a cluster. And I would like to save it as tdms cause i could divide the data to different groups. I also thought about data base but that would be the first time i use db and I really do not  have time to learn that now.
    I know it is possible to change some of the data types to others, ex Boolean to 0-1, but i need a string and a time stamp there. 
    Can someone advise me which data format should I use? Which one is the best one in this situation?
    Thanks in advance
    handre

    If you do not need to access data from another application (other than Labview) you can just save it as a binary file.
    It is the best choice (for me).
    I made an example with one cluster. You can replace that with an array of clusters, of that data type.
    Attachments:
    Example_VI_BD.png ‏2 KB

  • PLEASE HELP!!!  Problem with Java and SQLServer Text data type

    Hi there,
    I have a java app. that reads from an MS SQLServer database. Originally, all long text fields were declared as NVARCHAR(200). The program worked fine.
    Someone then advised that I change all long text fields to the TEXT data type. The program now crashes out with the following Exception:
    "java.sql.SQLException: [JRun][SQLServer JDBC Driver]This ResultSet can not re-read row data for column 25."
    Basically, I have a method that retrieves a resulset and iterates through it. The resultset is passed to another method during each iteration. In the example below, the 'specialNote' field used to be NVARCHAR(200). The code worked fine. Then when it was changed to TEXT, the program no longer works with the above Exception thrown.
    Anyone know any special way SQLServer TEXT data types need to be handled?
    Thanks for any advice!
    The code looks something like this in functionality:
    <CODE>
    public void method1 (Connection conn)
    Resultset rs = conn.createStatement().executeQuery("SELECT * FROM ProductBB");
    while (rs.next())
    method2(rs);
    public void method2 (ResultSet rs)
    String str = rs.getString("specialNote");
    </CODE>

    Hi JWoods,
    Thanks for the suggestion. I originally had the code do what you suggested, ie, get the resultset then retrieve the data all within the same method. The data is then used to set properties in an object.
    When I had to create another method that also retrieved a resultset but using a different primary key, then also use the returned data to set the properties in the same type of object, I didn't want to repeat the setter code. That's why I decided to pass the resultsets to the same method that did the property setting.
    Unfortunately, it stopped working with the data type change.
    Any other thoughts?

  • Difference b/w DATA TYPE and DATA OBJECT & differences b/w TYPE and LIKE

    hai
    can any one say the differences between Data type and Data Object.
    And also differences between TYPE and LIKE
    thanks
    Gani

    hi,
    _Data Types and Data Objects_
          Programs work with local program data – that is, with byte sequences in the working memory. Byte sequences that belong together are called fields and are characterized by a length, an identity (name), and – as a further attribute – by a data type. All programming languages have a concept that describes how the contents of a field are interpreted according to the data type.
          In the ABAP type concept, fields are called data objects. Each data object is thus an instance of an abstract data type. There are separate name spaces for data objects and data types. This means that a name can be the name of a data object as well as the name of a data type simultaneously.
    Data Types
       As well as occurring as attributes of a data object, data types can also be defined independently. You can then use them later on in conjunction with a data object. The definition of a user-defined data type is based on a set of predefined elementary data types. You can define data types either locally in the declaration part of a program using the TYPESstatement) or globally in the ABAP Dictionary. You can use your own data types to declare data objects or to check the types of parameters in generic operations.
         All programming languages distinguish between various types of data with various uses, such as ….. type data for storing or displaying values and numerical data for calculations. The attributes in question are described using data types. You can define, for example, how data is stored in the repository, and how the ABAP statements work with the data.
    Data types can be divided into elementary, reference, and complex types.
    a. Elementary Types
    These are data types of fixed or variable length that are not made up of other types.
    The difference between variable length data types and fixed length data types is that the length and the memory space required by data objects of variable length data types can change dynamically during runtime, and that these data types cannot be defined irreversibly while the data object is being declared.
    Predefined and User-Defined Elementary Data Types
    You can also define your own elementary data types in ABAP using the TYPES statement. You base these on the predefined data types. This determines all of the technical attributes of the new data type. For example, you could define a data type P_2 with two decimal places, based on the predefined data type P. You could then use this new type in your data declarations.
    b.  Reference Types
    Reference types are deep data types that describe reference variables, that is, data objects that contain references. A reference variable can be defined as a component of a complex data object such as a structure or internal table as well as a single field.
    c. Complex Data Types
    Complex data types are made up of other data types. A distinction is made here between structured types and table types.
    Data Objects
          Data objects are the physical units with which ABAP statements work at runtime. The contents of a data object occupy memory space in the program. ABAP statements access these contents by addressing the name of the data object and interpret them according to the data type.. For example, statements can write the contents of data objects in lists or in the database, they can pass them to and receive them from routines, they can change them by assigning new values, and they can compare them in logical expressions.
           Each ABAP data object has a set of technical attributes, which are fully defined at all times when an ABAP program is running (field length, number of decimal places, and data type). You declare data objects either statically in the declaration part of an ABAP program (the most important statement for this is DATA), or dynamically at runtime (for example, when you call procedures). As well as fields in the memory area of the program, the program also treats literals like data objects.
            A data object is a part of the repository whose content can be addressed and interpreted by the program. All data objects must be declared in the ABAP program and are not persistent, meaning that they only exist while the program is being executed. Before you can process persistent data (such as data from a database table or from a sequential file), you must read it into data objects first. Conversely, if you want to retain the contents of a data object beyond the end of the program, you must save it in a persistent form.
    Declaring Data Objects
          Apart from the interface parameters of procedures, you declare all of the data objects in an ABAP program or procedure in its declaration part. These declarative statements establish the data type of the object, along with any missing technical attributes. This takes place before the program is actually executed. The technical attributes can then be queried while the program is running.
         The interface parameters of procedures are generated as local data objects, but only when the procedure is actually called. You can define the technical attributes of the interface parameters in the procedure itself. If you do not, they adopt the attributes of the parameters from which they receive their values.
    ABAP contains the following kinds of data objects:
    a.  Literals
    Literals are not created by declarative statements. Instead, they exist in the program source code. Like all data objects, they have fixed technical attributes (field length, number of decimal places, data type), but no name. They are therefore referred to as unnamed data objects.
    b.  Named Data Objects
    Data objects that have a name that you can use to address the ABAP program are known as named objects. These can be objects of various types, including text symbols, variables and constants.
    Text symbols are pointers to texts in the text pool of the ABAP program. When the program starts, the corresponding data objects are generated from the texts stored in the text pool. They can be addressed using the name of the text symbol.
    Variables are data objects whose contents can be changed using ABAP statements. You declare variables using the DATA, CLASS-DATA, STATICS, PARAMETERS, SELECT-OPTIONS, and RANGESstatements.
    Constants are data objects whose contents cannot be changed. You declare constants using the CONSTANTSstatement.
    c.  Anonymous Data  Objects
    Data objects that cannot be addressed using a name are known as anonymous data objects. They are created using the CREATE DATAstatement and can be addressed using reference variables.
    d.  System-Defined Data Objects
    System-defined data objects do not have to be declared explicitly - they are always available at runtime.
    e.  Interface Work Areas
    Interface work areas are special variables that serve as interfaces between programs, screens, and logical databases. You declare interface work areas using the TABLES and NODESstatements.
    What is the difference between Type and Like?
    Answer1:
    TYPE, you assign datatype directly to the data object while declaring.
    LIKE,you assign the datatype of another object to the declaring data object. The datatype is referenced indirectly.
    Answer2:
    Type is a keyword used to refer to a data type whereas Like is a keyword used to copy the existing properties of already existing data object.
    Answer3:
    type refers the existing data type
    like refers the existing data object
    reward if useful
    thanks and regards
    suma sailaja pvn

  • Problem in F data type

    Hi experts...
    I am using F data type and it gets value 5.50000000000E+10.
    but I want value like 5.500.
    I don't want to use P data type.
    Please Help me.
    thanks in advance.

    Ankita,
    Try declaring it as type quann and check.
    Some additional info:-
    Type F values range from /- 2.2250738585072014E-308 to 1.7976931348623157E308, as well as the number 0, with an accuracy of at least 15 decimal places.
    You cannot enter floating point numbers directly in your programs. Instead, you must use text literals that can be interpreted as floating point numbers. You may use the following formats:
    Decimal numbers with or without sign, with or without decimal point. The form <mantissa> E<exponent>, where the mantissa is a decimal. The exponent may be specified either with or without sign. You may also use spaces before or after the number. Examples of text literals with "floating point numbers":
    '1', '-12.34567', '-765E-04', '1234E5', '12E34', '+12.3E-4', '1E160'.
    Use floating point arithmetic if you need a very large value range or you are making decimal calculations, but be aware of the following features of floating point arithmetic.
    Internally, the exponent and the mantissa of floating point numbers are stored separately, each in two parts. This can lead to unexpected results, despite the high degree of intrinsic accuracy. These occur mainly when performing conversions from and to type F.
    For example, the number 1.5 can be represented exactly in this notation, since 1.5 = 120 + 12**(-1), but the number 0.15 can only be represented approximately by the number 0,14999999999999999. If you round 0.15 up to 1 valid digit, the result is 0.1 rather than 0.2 as you would expect. On the other hand, the number 1.5E-12 is represented by the number 1.5000000000000001E-12, which would be rounded to 2E-12.
    Another example which actually occurred is the calculation of 7.27% of 73050 to an accuracy of 2 decimal places. The intermediate result 5.3107349999999997E+03, since the correct result, 5310.735, cannot be represented exactly in two parts with 53 bits. (If the hardware cannot represent a real number exactly, it uses the next representable floating point number. After rounding, you therefore get 5310.73 rather than 5310.74 as you would expect.
    The ABAP runtime system calculates commercially and not "numerically" like the underlying machine arithmetic. According to the rounding algorithm of the latter, the end digit 5 must always be rounded to the nearest even number (not the next largest number), i.e. from 2.5 to 2, 3.5 to 4.
    You should also note that multiplication using powers of 10 (positive or negative), is not an exact operation. For example, although 100.5 can be represented exactly in two parts, after the operation
    F = F / 100 * 100
    F has the value 100.49999999999999.
    As well as rounding errors, the restricted number of decimal places for the mantissa can lead to the loss of trailing digits. For example, 1 - 1.0000000000000001 results in zero.
    This means that you cannot rely on the last digits in floating point arithmetic. In particular, you should not usually test two floating point numbers for equality; instead, you should check whether the relative difference abs((a - b)/a) is less than a predefined limit, e.g. 10**(-7).
    K.Kiran.

  • Problem accessing basic data types

    Hi,
    I am a newbie at using JNI so please don't mind if I am asking something trivial.
    I have a JNI wrapper for a native C code. The C code is a Gtk+ application using GLib library. This library has it's own basic data types. For example, "gchar" corresponding to "char". I have generated the JNI Wrappers using the tool named "Swig" which is an interface between the C and other programming languages such as Java. What Swig has come up with is since "gchar" is not understood by it as "char" so it has taken the "gchar" as come Reference Type and generated another class for it. And instead of accepting simple char it is expecting a long.
    Even if I pass a numerical value like 11111 after instantiating this newly generated gchar class while running the program the JVM is crashing complaining SIGSEGV recieved from the underlying libraries.
    I am confused first of all since the error is not understood and secondly how can I tell the JNI that gchar is similar to char.
    What approach should I follow to solve the problem that I am facing? Any feedback on this will be appreciated.
    Thanks & Regards

    At run time you can see all the data........ like what i have shown...
    but if you clearly see, DATE will be in the internal format..but if you print it, it will be in dd:mm:yyyy
    can you suggest me if i have a dynamic field symbol (table data) ,,,, How can i convert data types dynamically..
    if it is a static internal table i am achieving with WRITE TO statement.....but i have huge data in field symbols...
    Instead of all these , please specify the exact problem your are facing . What is it with date field ? . In SAP while printing the internal format will be converted to external. What is your requirement with this date field?
    My output looks some thing like this:
    04 36876 15.09.2011 39600 1999
    06 36960 15.09.2011 39600 2632
    07 36874 15.09.2011 39541 9232
    My expected output
    04 36.876 15.09.2011 39.600 1.999
    06 36.960 15.09.2011 39.600 2.632
    07 36.874 15.09.2011 39.541 9.232
    I dont see any problems mentioned in your date field. Both your actual and expected outputs reflects the same in date field.
    In SCN you will only get solutions if your question is precise.
    Kesav

  • Float data types

    I don't really know SSAS but have been a .NET programmer and worked with SQL Server and T-SQL for years.  I am working on a project where there is a database storing sales transactions and a cube that is created nightly so we can get MTD Sales, YTD
    Sales, Profit $, etc.
    I just ran into an issue where I got an error retrieving the Profit $ measure (using an MDX query inside of a SQL stored procedure using OPENQUERY) and found that the profit $ should be 0.07 but is coming back as 6.9999999999993179E-2. After talking
    to our DBA, he said all of the calculations in the cube are double precision floating point and I need to round all results to 2 decimal places (programs like Excel handle the rounding and I should too.)
    Our DBA also claims the measures can't be calculated and returned as currency. He claims that the potential for error is very small and no one has ever complained about a $ value being off.
    I am struggling with this answer because I have always been told never to use floating point for monetary values.  I am having a hard time believing there is no way to have a measure be a currency field that is accurate.  I looked for articles
    online but can't seem to find anything to answer my questions.
    Could someone please point me in the right direction? Thanks so much!

    Your DBA is not completely correct in his claims. All calculations are not floating point below is a link to all of the data types supported by SSAS (Multi-Dimensional)
    https://technet.microsoft.com/en-us/library/gg471558%28v=sql.110%29.aspx?f=255&MSPPError=-2147217396
    SSAS supports a currency data type. It's 4 decimal places not 2, but it is the recommended data type for currency values as it does not suffer from the imprecision of the double data type.
    The other thing measures in a cube have is the concept of a format string, so you can ask the cube to return a pre-formatted value to you. But default an OPENQUERY will just return the raw value, but if you add the following:
    CELL PROPERTIES FORMATTED_VALUE
    to the end of your MDX query that should tell it to return the formatted value (which could be something like "$#,##0.00")
    See here https://msdn.microsoft.com/en-us/library/ms146084.aspx for a list of all the different format masks that can be applied
    http://darren.gosbell.com - please mark correct answers

Maybe you are looking for

  • Change of user name = new user?

    i 'accidently' changed my username on the left-side of the finder box. but afther restarting, i think it made a new user: i lost all of my settings, my language preferences, my mail-accounts, etc... i managed somehow to reset it, but i think i have a

  • LMS 2.5

    I have installed LMS 2.5 and Campus Manager 4.0.2. I have discovered the devices using the Device Seed option by importing the seed into the Campus Manager. Under the Capmus Manager -->Administration. the Device Discovery has been running since Frida

  • Jarsigner errors

    I am trying to create and sign a certificate to run an applet. This is all done through command line, and the certificate is created by: keytool -genkey -keyalg rsa -alias signFiles keytool -export -alias signFiles -file tapestry then the jar is crea

  • Emailed jpegs cannot be opened by AOL users?

    I never had this problem with iView but for some reason when I email pics (using the default JPEG profile) from Aperture (via Mail.app), AOL recipients cannot open or view my images at all. Has anyone experienced this problem/found a solution? Thanks

  • How does BPEL connect to JMS??

    Hi All, I have a BPEL process which basically logs a message into a JMS Q..This process runs forever and when ever a new message is to be logged we return the same instance instead of a new instace.. Now a couple of questions I have on this is - How