Error en programacion basica.

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ByAndreson
    Junior Member
    • jun
    • 4

    #1

    Error en programacion basica.

    hola, estoy empezando con ABAp, aprendo muy rápido pero hasta ahora en mi primer día de pruebas solo consigo errores en la compilación, no se si el el SAP que tengo instalado que esta mal o es errores básicos del lenguaje. según yo el código esta bien pero algo falta o pasa. favor me pueden orientar.

    gracias totales.

  • SMJimenez
    Junior Member
    • abr
    • 2

    #2
    He hecho tu mismo código y salvo que se me escape algo me ejecuta perfectamente.

    Eso sí, veo que en tu error dice que no reconoce 'TRING' ¿Has probado a guardar y activar nuevamente? Quizá esté intentando activar una versión anterior que tenía ese error de escritura.

    Suerte

    Comentario

    • ByAndreson
      Junior Member
      • jun
      • 4

      #3
      Originalmente publicado por SMJimenez
      He hecho tu mismo código y salvo que se me escape algo me ejecuta perfectamente.

      Eso sí, veo que en tu error dice que no reconoce 'TRING' ¿Has probado a guardar y activar nuevamente? Quizá esté intentando activar una versión anterior que tenía ese error de escritura.

      Suerte
      Estimado, gracias por la pronta respuesta. Respecto al error probé lo mencionado y arroja el mismo error siempre, entiendo el mensaje que no reconozca 'TRING' pero en mi código la palabra es STRING (tipo de variable), no entiendo por que corta el código al compilar (guardo y compilo y pasa lo mismo). Necesito sabe si es problema de mi SAP instalado o es alguna configuración para abap u otro.

      no se si a alguien le ha pasado alguna vez.

      saludos muchos.

      Comentario

      • monkeyisland1
        Junior Member
        • jun
        • 15

        #4
        hola.

        tu código esta bien. la variable nombre puedes definirla como string o como char con longitud x.

        vuelve a grabar y generar porque deberia ir bien. como te han comentado posiblemente sea de una version anterior o de otro programa.

        Comentario

        • vanesamacri
          Senior Member
          • jun
          • 146

          #5
          Hola.

          Las versiones viejas de SAP no admiten al tipo STRING como tipo válido de datos. Creo que recién a partir de la release 6.0 es que se permite su uso. Como alternativa (y tal como te recomendaron) te conviene utilizar una variable de tipo CHAR con la longitud que desees.

          Saludos.

          Comentario

          • ByAndreson
            Junior Member
            • jun
            • 4

            #6
            como buen alumno cambie la variable a tipo CHAR (osea c), el resultado fue como muestro en la foto que me mostró la primera letra del nombre :P. Luego fui y le di un largo como sale en los manuales de (15) y me dice que no esta definida como sale en la foto mas abajo. creo que me esta tomando el pelo jojojojo. ¿que puede ser?, gracias por la ayuda.

            Comentario

            • vanesamacri
              Senior Member
              • jun
              • 146

              #7
              Probá:

              DATA nombre TYPE char15.

              Comentario

              • ByAndreson
                Junior Member
                • jun
                • 4

                #8
                Originalmente publicado por vanesamacri
                Probá:

                DATA nombre TYPE char15.
                gracias por el dato, funciono cambiando a char15 (en los sitios web sale de otra forma la asignación del largo). Me gustaría comprender esto un poco ya que tengo falla en la Matrix .

                tal como muestro en la foto en mi write puse números, el largo total es 10 caracteres y el resultado compila bien. pero si agrego dos números mas me da error ¿no se supone que me debería permitir hasta 15 de largo?

                Comentario

                • vanesamacri
                  Senior Member
                  • jun
                  • 146

                  #9
                  Originalmente publicado por ByAndreson
                  gracias por el dato, funciono cambiando a char15 (en los sitios web sale de otra forma la asignación del largo).
                  En las releases más actuales, es posible determinar la longitud de los datos declarados tal y como lo hiciste en el ejemplo anterior --> DATA nombre(15) TYPE c.


                  Originalmente publicado por ByAndreson
                  tal como muestro en la foto en mi write puse números, el largo total es 10 caracteres y el resultado compila bien. pero si agrego dos números mas me da error ¿no se supone que me debería permitir hasta 15 de largo?
                  Raro... A simple vista no encuentro cuál es el problema. En teoría, deberías poder asignarle un dato de cualquier longitud (que luego sería truncado por la de la variable). Ante mi desconocimiento, voy a volver a jugar la carta de "es problema de la versión de la release del complemento ABAP". Por las dudas, probá asignándole el valor de la siguiente manera (para ver si funciona):

                  nombre = '112233446677'.

                  Comentario

                  • ballan
                    Senior Member
                    • oct
                    • 671

                    #10
                    Seguramente este ocurriendo lo siguiente, fijate en la longitud de las cadenas completas de codigo, es decir, suma los 4 caracteres de la palabra move, el espacio en blanco, los 12 de tu literal, etc

                    move '112233446677' to nombre. -> Longitud total de la cadena = X
                    write: 'nombre: ', nombre. -> Longitud total de la cadena = X-2

                    Estara dando error porque habra una limitacion en el numero de caracteres que puede contener una linea de codigo

                    Si pones

                    move '1122334466' to nombre.

                    No da error porque la longitud total de la cadena es X-2

                    Si pones

                    move '112233446677' to nombre.

                    Te da error y casualmente te dice statment "RE" que si te fijas son los dos ultimos caracteres de la palabra NOMBRE

                    Si en lugar de poner

                    move '112233446677' to nombre.

                    pones

                    move '11223344667788' to nombre.

                    El error te dira statment "MBRE"

                    En resumen, tienes una limitacion en la longitud de una linea de codigo que sera debido a la version que tienes, tienes que buscar cual es el caracter para poder continuar una sentencia en una nueva linea que la verdad, desconozco que caracter es en el caso de ABAP porque nunca he tenido que utilizarlo

                    Comentario

                    • EvaBeas
                      Junior Member
                      • jun
                      • 2

                      #11
                      Como dice Ballan, eso es lo que está ocurriendo.

                      En SAP no hay código para continuidad de línea, lo único que debes hacer es poner la sentencia en dos líneas y cerrar con punto.

                      move '112233446677'
                      to nombre.

                      write: 'nombre: ',
                      nombre.

                      Comentario

                      Trabajando...