11-09-2011 6:55 AM
Hi colleagues,
I have one problem, I've never faced with that one before. I have a case and one invoice for the case, for example later I want to add 2 new services and create a new one invoice for these two services - in this case a system creates invoice with these two new services and with all services from previous invoice for the same case with cost 0.
Could you please tell me what might be a reason for this? Has anybody faced with this one?
Thank you very much for your time.
Kind regards,
Alexander.
11-10-2011 6:42 PM
Hi Alexander
Are you using insurence verification or payment distibution?
I had the same issue in insurance verification.
With best regards
Matías
11-12-2011 6:24 AM
Hi Matias,
Yes, I am using the insurance verification. I used this one on my previous projects, but I didn't have this issue. Do you have any idea what is the reason for this, is there any customization? Maybe you have an SAP explanation about this ... I haven't found some related data with this one in the sap help documentation.
Thank you very much for your time.
Best regards,
Alexander
11-24-2011 6:26 PM
Hi Alexander
Sorry for my late response, I've been quite busy lately.
Wel, happened to me once in a customer, and I never found the cause of the error. Anyway, I could solve it.
In my case, if you see the field VBRP-ISHBELNRF and VBRP-ISHPOSNRF of the already billed service, points to a NLKZ record that does not exists in NKSP. (or something like that, I dont't remember very well, but truly, there is an inconsistency between what is stored in VBRP-ISHBELNRF and VBRP-ISHPOSNRF and what you see in the insurance verifcation tables)
It seams that, if you use the Standard IV and then the Extended IV, somehow the NLKZ records are grooped into one position of NKSP.
The solution I've found is to filter those already fully billed services before they are processed.
To do so you must enhance the form CHECK_SELECT_SERVICES_xx of the include LN090FXX (XX is the country version, depending on the country version your are using another form could be called)
F p_nfal-abrkz IS NOT INITIAL.
SELECT SINGLE * into lv_zihacase FROM zihacase
WHERE einri = p_nfal-einri
AND falnr = p_nfal-falnr.
IF sy-subrc = 0.
lt_nlei = p_nlei[].
CLEAR lt_rnabi1.
REFRESH lt_rnabi1.
LOOP AT lt_nlei ASSIGNING .
Esta función estándar analiza si la prestación ha sido facturada. Tiene en cuenta anulaciones
CALL FUNCTION 'ISH_CHECK_ABGERECHNET'
EXPORTING
einri = p_nfal-einri
falnr = p_nfal-falnr
lnrls = -lnrls
zeitr = 'X'
I_NLEI =
DETAILED = 'X'
READ_PER_CASE = 'X'
read_buffer = 'X'
EXACT_ABDAT = ' '
IMPORTING
lei_abger = lv_abger
TABLES
e_rnabi1 = lt_rnabi1
CHANGING
HIGH_ABDAT =
EXCEPTIONS
NO_EINRI = 1
NO_FALNR = 2
NO_LNRLS = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Si el campo LV_ABGER es inicial, quiere decir que no ha sido facturada
CHECK lv_abger IS NOT INITIAL.
lv_abmen_p = 0.
lv_vproz = 0.
LOOP AT lt_rnabi1 ASSIGNING -vproz.
ENDLOOP.
Si hay multicobertura por importe, la cantidad del campo LV_ABMEN_P tiene que sumar 1
Si hay multicobertura por porcentaje, el campo LV_VPROZ debe ser 100
Si se da alguna de estas condiciones, quiere decir que la prestación fue facturada.
se mantiene el >= ya que es posible que, por inconsistncias, las prestacions hayan sido facturadas varias veces.
IF lv_abmen_p >= 1 OR lv_vproz >= 100.
DELETE TABLE p_nlei FROM .
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
I hope it helps.
With best regards
Matías