Error derivado de función de nómina que accede a cluster.

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • vicosap
    Senior Member
    • abr
    • 233

    #1

    Error derivado de función de nómina que accede a cluster.

    Hola !

    Hice una función que accede al cluster de nómina.

    El problema que tengo es que creo que las funciones que uso dentro de esta función de nómina dejan algún valor en tablas o campos los cuales son ocupados posteriormente. Luego entonces cuando son de nueva cuenta invocadas por otros programas pues ya tienen valores y no deberían.

    El error que me sale es el siguiente:

    Sólo se pueden tratar 36 cluster a la vez.

    Este error me sale en la función P0262 de nómina.

    Espero me puedan orientar.
    Muchas gracias !!!
  • teo30
    Junior Member
    • abr
    • 20

    #2
    Espero esto te pueda ayudar en algo.

    En todo caso si detallas un poco mas lo que necesitas te pueden ayudar mas.
    saludos

    Comentario

    • vicosap
      Senior Member
      • abr
      • 233

      #3
      Lo que quería es acceder a la tabla AB de la nómina anterior y lo que hice fue esto:

      * Solo Obtener tabla AB de cluster

      w_spec_objects = 'INTER-AB'.
      APPEND w_spec_objects TO li_spec_objects.


      CALL FUNCTION 'PYXX_SPECIFY_OBJECTS'
      TABLES
      specified_objects = li_spec_objects.


      REFRESH: li_rgdir, li_payroll-inter-AB.
      *-- Lee Directorios Cluster en Rgdir
      CALL FUNCTION 'CU_READ_RGDIR'
      EXPORTING
      persnr = pernr-pernr
      TABLES
      in_rgdir = i_rgdir_all
      EXCEPTIONS
      no_record_found = 1
      OTHERS = 2.

      **--Registros Validos

      CALL FUNCTION 'CD_SELECT_VOID'
      EXPORTING
      void_indicator = space
      TABLES
      in_rgdir = i_rgdir_all
      out_rgdir = i_rgdir_void
      EXCEPTIONS
      OTHERS = 1.

      **-- Solo entradas para la(s) fecha del periodo(s)
      *
      if aper-abkrs EQ 'ES'.
      inicio_r = aper-begda - 7.
      fin_r = aper-endda - 7.
      else.
      concatenate aper-begda(6) '01' into fin_r.
      fin_r = fin_r - 1.
      concatenate fin_r(6) '01' into inicio_r.
      endif.

      CALL FUNCTION 'CD_SELECT_DATE_RANGE'
      EXPORTING
      fpper_begda = inicio_r " aper-begda
      fpper_endda = fin_r "aper-endda
      TABLES
      in_rgdir = i_rgdir_void
      out_rgdir = i_rgdir_dates
      EXCEPTIONS
      OTHERS = 1.

      **-- Selecciona solo resultados actuales

      CALL FUNCTION 'CD_SELECT_SRTZA'
      EXPORTING
      record_type = c_srtza
      TABLES
      in_rgdir = i_rgdir_dates
      out_rgdir = p_li_rgdir
      EXCEPTIONS
      OTHERS = 1.

      READ TABLE p_li_rgdir INTO e_p_li_rgdir INDEX 1.

      ** Obtiene los Resultados para la Secuencia
      CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
      EXPORTING
      clusterid = 'MX'
      employeenumber = pernr-pernr
      sequencenumber = e_p_li_rgdir-seqnr
      * read_only_international = 'X'

      CHANGING
      payroll_result = li_payroll
      EXCEPTIONS
      illegal_isocode_or_clusterid = 1
      error_generating_import = 2
      import_mismatch_error = 3
      subpool_dir_full = 4
      no_read_authority = 5
      no_record_found = 6
      versions_do_not_match = 7
      error_reading_archive = 8
      error_reading_relid = 9
      OTHERS = 10.



      Posteriormente con el fin de limpiar lo que habían llenado las funciones anteriores hice lo siguiente:

      clear li_spec_objects.

      * Solo Obtener tabla AB de cluster
      CALL FUNCTION 'PYXX_SPECIFY_OBJECTS'
      TABLES
      specified_objects = li_spec_objects.

      e_p_li_rgdir-seqnr = 0.


      EXPORT d_borra to memory id 'BORRAR'.

      CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
      EXPORTING
      clusterid = 'MX'
      employeenumber = pernr-pernr
      sequencenumber = e_p_li_rgdir-seqnr
      * read_only_international = 'X'
      CHANGING
      payroll_result = li_payroll
      EXCEPTIONS
      illegal_isocode_or_clusterid = 1
      error_generating_import = 2
      import_mismatch_error = 3
      subpool_dir_full = 4
      no_read_authority = 5
      no_record_found = 6
      versions_do_not_match = 7
      error_reading_archive = 8
      error_reading_relid = 9
      OTHERS = 10.


      El export lo hice porque metí una ampliación a la función PYXX_READ_PAYROLL_RESULT para limpiar las variables que quedaron llenas.

      Espero me puedan ayudar.

      Saludos y gracias teo30.

      Comentario

      Trabajando...