Transact RFC
Hi,
I am getting an error as :"Transact RFC error" during data load.What does it mean? How to solve it?
Thanks in advance.
First of all please check that the connection between your BI & Source System are OK.
Check the tRFC queue using SMQS.
Also check in system log Sm21 if you find anything.
You can check tRFC errors at SM58 as well
Similar Messages
-
Monitoring of remote system's Transactional RFC and Queued RFC
Hello,
In our production system, in rz20- CCMS monitor templates- Communication-Transactional RFC and Queued RFc- outbound queues- Queues otherwise not monitored we can see blocked queues for each client.
System is connected to solution manager and we wish the central auto reaction is implemented in solution manager
However i am unable to find Transactional RFC and Queued RFC for the remote system, they exist only for solution manager itself
Tell me how can i do the central monitoringHello,
First you need to check with your Landscape in solman in order to monitor any kind of activities to do so pls follow these steps.
Go to SMSY in solman under Landscape components>Product systemsselect you satellite system example SAP ECC.
On the main screen you will find client for which you have generated RFC connection. Please check though connection are working fine, Go to edit mode and try to click on generate button there will be a pop-up, which gives a clear picture of RFC connection which already exists, and you can also re-generate this RFC connection by clean it up when you re-generate pls select under Actions after generation assign RFC dest for system monitoring.
But make sure there is no project impact on this RFC, like they are not using any logical components and already have some projects running on this RFC connection.
I would advise you to first you the option of assign and check RFC button which is next to generate icon.
Regards
JUDE -
hi all,
Can anyone explain to me how transactional RFC works? As what i've understand it, the first transaction to get in is the first to be executed right?
Here's my scenario. I always monitors the transactional RFC,and from time to time, I observe irregularities. For example, at arround 9:00 am, bunch of transactions are displayed and the status are "status recorded". By 11:00 am, transactions are added again but this time one of the status of transactions timed 11:00am is "status executing" even if there are still remaining transactions that are recorded by 9:00 am. The way i understand it, the "first in" "first out" here was not applied.
Could anyone clear this? am i right about the "first-in first-out" scenario? if yes, how can i correct tmy problem? If not, can you explain??
Your response is highly appreciated.
cheers,
JayHi Jay,
As given in the RFC adapter help
Transactional RFC calls (tRFCs) in messages with quality of service Exactly Once (EO)
The tRFC in SAP sense means:
This scenario is suitable if the data being sent is not interrelated. A calling application (or client) in system 1 uses a tRFC connection to a called application (or server) in system 2. In this scenario, the data is transferred using tRFC. This means that each function module sent to the target system is guaranteed to be processed once. The order in which the function modules are executed, and the time they are executed, cannot be determined. If a transfer error occurs, a background job is scheduled that resends the function module after a defined period of time.
What you are talking abt is EOIO. As per the RFc adapter help, it supports:
Transactional RFC calls (tRFCs) in messages with quality of service Exactly Once (EO)
The receiver RFC adapter can also process messages with quality of service Exactly Once In Order (EOIO). They are mapped to transactional RFC calls (tRFC).
Hope this is of some help.
Regards
Vijaya -
hi experts,
In SM58(Transactional RFCs) Status text showing "document is being distributed changes are not possible".
why this error comming.
Any one can help me out in this.
Regards,
BabuHi Babu,
In general, when you create any BP or Material or Order in R/3, it will move to CRM.
Now if you try to edit that document in CRM, it will give the error message "document is being distributed changes are not possible".
This can happen vice versa too, I mean if you create data in CRM and if it moves to R/3.
If you have not done any settings regarding changing data after moving one system to another, this error message gets triggered.
Check the below link to have a clear picture.
Document is being distributed - changes are not possible
Hope this helps.
Thanks.
Best Regards,
Arun Sankar. -
Example Of Aynchronous and Transactional RFC
hi all
please give me an <b>example for Aynchronous and Transactional RFC</b>.
<b>note: dont give me the definitions. </b>i have the same.please give me the example
regards
ravishHi Ravish,
I am using the FM RFC_READ_TABLE for the examples,
In our Examples we are using the following systems.
Description Server Name RFC Destination
Calling System PDC ENT Server NONE
Target System 1 PDC 210 Server PDC210
Target System 2 PDC ISU Server BPD150
<b>Common Code</b>
REPORT yarfc_with_resp_ran_test .
DATA : lit_options TYPE TABLE OF rfc_db_opt.
DATA : wa_options LIKE LINE OF lit_options.
DATA : lit_fields TYPE TABLE OF rfc_db_fld.
DATA : wa_fields LIKE LINE OF lit_fields.
DATA : lit_data TYPE TABLE OF tab512.
DATA : wa_data LIKE LINE OF lit_data.
DATA : lv_count TYPE i.
DATA : flg_check TYPE flag.
DATA : lv_time LIKE sy-uzeit.
CONSTANTS : lc_dbtable TYPE tabname VALUE 'MARA'.
*Refreshing the tables
REFRESH : lit_options,lit_fields,lit_data.
*Populating the Option Table
*Populating the Field Table
CLEAR wa_fields.
wa_fields-fieldname = 'MATNR'.
wa_fields-offset = 000032.
wa_fields-length = 000018.
wa_fields-type = 'C'.
wa_fields-fieldtext = 'Material number'.
APPEND wa_fields TO lit_fields.
<b>aRFC with Response</b>
* aRFC Example With Response
*Refreshing the Data Table
REFRESH : lit_data.
*PDC-ENT to PDC210
CALL FUNCTION 'RFC_READ_TABLE'
STARTING NEW TASK 'taskPDC210'
DESTINATION 'PDC210'
PERFORMING resp_pdc210 ON END OF TASK
EXPORTING
query_table = 'MARA'
TABLES
options = lit_options
fields = lit_fields
data = lit_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR lv_count.
lv_count = LINES( lit_data ).
WRITE : 'aRFC Example With Response'.
SKIP 1.
*MARA DB Count Before Receiving the result of Function Call
WRITE : 'MARA DB Count(PDC210)' , lv_count , sy-uzeit.
*Waiting for 1 Second to identify the time difference
WAIT UP TO 1 SECONDS.
*Synchronisation Point
WAIT UNTIL flg_check = 'X'.
SKIP 1.
WRITE : 'Time When We Set Flag Check i.e. we are in Receiving FM' , lv_time.
CLEAR lv_count.
lv_count = LINES( lit_data ).
SKIP 1.
*Waiting for 1 Second to identify the time difference
WAIT UP TO 1 SECONDS.
*MARA DB Count After Receiving the result of Function Call
WRITE : 'MARA DB Count(PDC210)' , lv_count , sy-uzeit.
*& Form resp_pdc210
FORM resp_pdc210 USING taskname.
RECEIVE RESULTS FROM FUNCTION 'RFC_READ_TABLE'
TABLES
options = lit_options
fields = lit_fields
data = lit_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7
*Flag set for the Synchronisation Check.
flg_check = 'X'.
CLEAR lv_time.
*Time when flag get set.
lv_time = sy-uzeit.
ENDFORM. " resp_pdc210
<b>tRFC</b>
* Transactional RFC Example
*Refreshing the Data Table
REFRESH : lit_data.
*PDC-ENT to PDCISU
CALL FUNCTION 'RFC_READ_TABLE'
IN BACKGROUND TASK
DESTINATION 'PDCISU'
EXPORTING
query_table = lc_dbtable
TABLES
options = lit_options
fields = lit_fields
data = lit_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Refreshing the Data Table
REFRESH : lit_data,lit_fields.
*Populating the Field Table
CLEAR wa_fields.
wa_fields-fieldname = 'INT_UI'.
wa_fields-offset = 000032.
wa_fields-length = 000022.
wa_fields-type = 'C'.
wa_fields-fieldtext = 'Internal key for point of delivery'.
APPEND wa_fields TO lit_fields.
*PDC-ENT to PDCISU
CALL FUNCTION 'RFC_READ_TABLE'
IN BACKGROUND TASK
DESTINATION 'PDCISU'
EXPORTING
query_table = 'EUIHEAD1'
TABLES
options = lit_options
fields = lit_fields
data = lit_data
EXCEPTIONS
table_not_available = 1
table_without_data = 2
option_not_valid = 3
field_not_valid = 4
not_authorized = 5
data_buffer_exceeded = 6
OTHERS = 7.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'RFC_PING'
IN BACKGROUND TASK
DESTINATION 'PDCISU'.
*Commit Work
COMMIT WORK.
<b>Do reply for any further help.</b>
Regards,
Ranjit Thakur.
<b>Please Mark The Helpful Answer.</b> -
Limit for a Transactional RFC to be executed
Hi all,
I would like to know if there is a profile parameter in SAP NW 7.0 that defines the limit the time an transactional RFC can keep running?
If there is no profile parameter for that my question is can a transactional RFC running forever without any time limitation?
Regards,
MauricioTo search basis parameters you can query table TPFYPROPTY with rfc paraname field.
-
Many queues in Transactional RFC (SM58)
Hello,
There are many queues under transactional RFC(SM58) what should i do?
Can i delete the Queue's or execute that?
What is the mean of Execute LUW's and Debug LUW's ,when we wil use it?
Highly appriciate your immediate replies.
Thanks in advance.
Cheers,
Chinna.Hi Chinna
You have all the details mentioned in this link
http://help.sap.com/saphelp_nw04/helpdata/en/22/042585488911d189490000e829fbbd/content.htm
Cheers
Shaji -
UnknownServiceException in Transactional RFC calls(SM58)
Hi,
I found few com.wm.app.b2b.server.UnknownServiceException" messages in Transactional RFC calls status. Any clues to trouble shoot this problem?
Thanks in advance
Regards
SrinagarIn SM58, Click EXECUTE, by inputting username as "*"
I got that Unknow service Exception for function module "IDOC_INBOUND_ASYNCHRONOUS"
Regards
Srinivas -
Dear Experts,
I have an issue with transactional RFC.
There are many queues there (SM58) what should i do know?
Should i execute LUW for each row?
Thanks in advance.
RhesaHi
are you sure that you have issues in SM58 ? or in Smw01?
Sm58 for transactional data moving from source to destination
Pleasebe more specific
regards
venkat -
SM58 (transactional RFC)
Hi,
In our source system in SM58 (transactional RFC) i am getting the Status Text:
User is locked. Please notify the person responsib
Please advise how to proceed
Thanks
Please search the forum before posting a thread
Edited by: Pravender on Aug 12, 2011 4:09 PMHi
Thanks for the update.
I can execute the TCode SM58 and there i can see all the RFC queus are failed becaus of User Locked -
Transactional RFC material (urgent)
Hi gurus,
i need some good matrial on Transactional Remote Function Call. Please provide me the same,
any help will be highly appreciated
Regards
vjhi vj,
Transactional RFC
1 This type of RFC was renamed from asynchronous to transactional RFC, because asynchronous RFC has another meaning in R/3 Systems.
2 The called function module is executed exactly once in the RFC server system. Each function call is seen as a transaction in the target system.
3 Transactional RFCs use the suffix IN BACKGROUND TASK. The remote system need not be available at the time when the RFC client program is executing a tRFC.
4 The tRFC component stores the called RFC function together with the corresponding data in the R/3 database, including a unique transaction identifier (TID).
5 If a call is sent, and the receiving system is down, the call remains in the local queue until a later time.
6 The calling dialog program can proceed without waiting to see whether or not the remote call was successful. If the receiving system does not become active within a certain amount of time, the call is scheduled to run in batch.
7 The system logs the remote call request in the database tables ARFCSSTATE and ARFCSDATA with all of its parameter values. You can display the log file using transaction SM58.
8 When the calling program reaches a COMMIT WORK, the remote call is forwarded to the requested system for execution.
9 Transactional RFC requests are transferred, with parameter data in byte-stream form, using TCP/IP or X400.
10 LUW's are identified by transaction ID's that are unique world-wide. The transaction ID can be determined from an ABAP program by calling function module ID_OF_BACKGROUNDTASK. (You must call this function after the first asynchronous CALL, and before the related COMMIT WORK.)
11 The system function module ARFC_DEST_SHIP transports the data to the target system and the function module ARFC_EXECUTE executes the stored function calls. If an error or an exception occurs during one of the calls, all the database operations started by the preceding calls are rolled back and an appropriate error message is written to the file ARFCSSTATE.
12 Once you have identified the ID of the LUW, you can use the function module STATUS_OF_BACKGROUNDTASK to determine the status of the transactional RFC.
13 Call transaction SM58 (Tools _ Administration _ Monitoring _ Transactional RFC). This tool lists only those transactonal RFCs that could not be carried out successfully or that had to be planned as batch jobs. The list includes the LUW ID and an error message. Error messages displayed in SM58 are taken from the target system. To display the text of the message, double-click on the message.
14 If a LUW runs successfully in the target system, the function module ARFC_DEST_CONFIRM is triggered and confirms the successful execution in the target system. Finally, the entries in the Tables ARFCSSTATE and ARFCSDATA are deleted.
DISADVANTAGES
1 These can reduce performance significantly in both the send and the target
systems.
2 In addition, the sequence of LUWs defined in the application cannot be kept. Therefore, there is no guarantee that the transactions are executed in the sequence dictated by the application. The only guarantee is that all LUWs are transferred sooner or later.
SYNTAX
Eg : CALL FUNCTION remotefunction IN BACKGROUND TASK
CALL FUNCTION func IN BACKGROUND UNIT
parameter_list. The field dest can be either a literal or a variable. Logical destinations are defined in the RFCDES table via transaction SM59 or via the menu path: Tools ->Administration,Administration->Network->RFC destinations.
SAMPLE PROGRAM
RSTRFCT0
regards
gaurav
<b>plz award pts if helpfull</b> -
Hi Gurus,
I am getting one issue while loading the data thru infopackage.
While loading the data in 3.5 flow for some souce system it is taking long time
and givig me transact RFC error. I have checked the source system connectivity and it is fine.Although the status is yellow during the load but at the end of the load it turns to red and it gives me below mentioned error:
Missing data packages for No selection information arrived from the source s
Diagnosis
Data packets are missing from No selection information arrived from the source s. BI processing does not return any errors. The data transport from the source system to BI was probably incorrect.
Procedure
Check the tRFC overview in the source system.
You access this log using the wizard or following the menu path "Environment -> Transact. RFC -> Source System".
Error handling:
If the tRFC is incorrect, resolve the errors listed there.
Check that the source system is connected properly to BI. In particular, check the remote user authorizations in BI.
Kindly let me know your suggestion in this issue.
Thanks in advance.
AmitHi
This error would normally occur, if at the time of processing, the data packets get stuck
To check for stuck trfc follow the path
Environment -> Transact. RFC -> Source System
there, check if trfc recorded, then it means, it is stuck, slecect that particular record and press F6 to execute the LUW.
If this is not the case, check the job overview in the source system.
IF you find ARFCSTATE = loading/sysfail, it means the trfc is stuck ..
you can check the datapacket number from there, and try mannual update for those partiular data packets.
Or else, sometimes, the packet itself doesnt arrive in BW, because of connection problem during the processing of few packets, ands later when you check, it seems fine.
In such cases simply repeat the load
Hope this helps
Regards
Shilpa -
hi experts
transactional rfc are transferred with parameters data in byte stream usin which protocolwhat i would suggest is, do not use commit work till the end of 2nd RFC.
After the second RFC is successfull then use ,
Commit work.
else. Roll back.
Also, its better to use QRFC.
TRFC does not guarantee the sequence of updation the destination.
So, better to assign 'RFCA' and 'RFCB' to the same queue like below.
data: i_queue_qname like TRFCQOUT-QNAME.
CALL FUNCTION 'TRFC_SET_QUEUE_NAME'
EXPORTING
qname = i_queue_name
NOSEND = ' '
TRFC_IF_SYSFAIL = ' '
CALL_EVENT = ' '
EXCEPTIONS
invalid_queue_name = 1
OTHERS = 2
CALL FUNCTION 'RFC A' IN BACKGROUND TASK.
EXPORTING
QUEUE_NAME = I_QUEUE_NAME.
CALL FUNCTION 'RFC B' IN BACKGROUND TASK.
EXPORTING
QUEUE_NAME = I_QUEUE_NAME.
With QRFC , the LUWs are posted in the order they are sent. The 2nd LUW will not be posted until 1st LUW is successfull. -
Hi Guys,
I have done a recording to implement te creation of a candidate in R/3.
To do this i have implemented a RFC enabled FM and if i execute it it works fine.
Now i have called this FM from an external system and it is not working, but if i create a WS from this FM it works.
I dont know what to do, Any idea?
Kind regards
JonHi Pablo,
Not in dynpro 100 but yes on dynpro 104.
Look here is my recording, to create the candidate i use the standard action initial entry of basic data.
And this ir the recording:
PERFORM dynpro USING: 'X' 'SAPMP50A' '4200',
' ' 'RP50G-SELEC(05)' 'X',
' ' 'RP50G-EINDA' sy-datum,
' ' 'RPAPP-APLNO' ' ',
' ' 'BDC_OKCODE' '=PICK'.
PERFORM f_comprobar_externo USING datos_personales CHANGING lv_existe.
PERFORM dynpro USING: 'X' 'SAPMPAP4' '0104',
' ' 'P4000-STREA' '15',
' ' 'Q4000-WERKS' '0099',
' ' 'P0001-BTRTL' 'EXTE',
' ' 'Q4000-APGRP' 'B',
' ' 'Q4000-APTYP' 'B1',
' ' 'P0002-VORNA' DATOS_PERSONALES-VORNA, " NOMBRE
' ' 'P0002-NACHN' DATOS_PERSONALES-NACHN, " APELLIDO 1
' ' 'P0002-NACH2' DATOS_PERSONALES-NACH2, " APELLIDO 2
' ' 'P0002-SPRSL' 'S', "DATOS_PERSONALES-SPRSL, " IDIOMA COMUNICACION
' ' 'P0002-GBDAT' DATOS_PERSONALES-GBDAT, " FECHA NACIMIENTO
' ' 'QPAPL-ADD_0002' 'X',
' ' 'QPAPL-ADD_0006' 'X',
' ' 'P4001-OFFID' '2',
' ' 'P0006-ORT01' DATOS_DIRECCION-ORT01, " LOCALIDAD
' ' 'P0006-STRAS' DATOS_DIRECCION-STRAS, " DIRECCION
' ' 'P0006-PSTLZ' DATOS_DIRECCION-PSTLZ, " CODIGO POSTAL
' ' 'P0006-TELNR' DATOS_DIRECCION-TELNR, " TELEFONO
' ' 'BDC_OKCODE' '=UPD'.
if lv_existe EQ 'X'.
PERFORM dynpro USING: 'X' 'SAPMSSY0' '0120',
' ' 'BDC_OKCODE' '=BACK'.
PERFORM dynpro USING: 'X' 'SAPMPAP4' '0104',
' ' 'BDC_CURSOR' 'Q0002-ANREX',
' ' 'BDC_OKCODE' '=UPD'.
if p_nie eq '0'.
PERFORM dynpro USING: 'X' 'MP000200' '2004',
' ' 'P0002-PERID' DATOS_PERSONALES-PERID(9), " NIF
' ' 'Q0002-ID_TYPE' '1',
' ' 'BDC_OKCODE' '=UPD'.
elseif p_nie eq '1'.
PERFORM dynpro USING: 'X' 'MP000200' '2004',
' ' 'P0002-PERID' DATOS_PERSONALES-PERID(9), " NIE
' ' 'Q0002-ID_TYPE' '6',
' ' 'BDC_OKCODE' '=UPD'.
endif.
PERFORM dynpro USING: 'X' 'MP000600' '2004',
' ' 'BDC_CURSOR' 'P0006-BEGDA',
' ' 'BDC_OKCODE' '=UPD',
' ' 'BDC_SUBSCR' 'SAPMP50A 0090SUBSCREEN_T582C'.
PERFORM dynpro USING: 'X' 'SAPMPAP4' '0104',
' ' 'BDC_OKCODE' '/EEBAC'.
PERFORM dynpro USING: 'X' 'SAPMP50A' '4200',
' ' 'BDC_OKCODE' '/EBCK'.
else.
IF p_nie eq '0'.
PERFORM dynpro USING: 'X' 'MP000200' '2004',
' ' 'P0002-PERID' DATOS_PERSONALES-PERID(9), " NIF
' ' 'Q0002-ID_TYPE' '1',
' ' 'BDC_OKCODE' '=UPD'.
elseIF p_nie eq '1'.
PERFORM dynpro USING: 'X' 'MP000200' '2004',
' ' 'P0002-PERID' DATOS_PERSONALES-PERID(9), " NIF
' ' 'Q0002-ID_TYPE' '6',
' ' 'BDC_OKCODE' '=UPD'.
ENDIF.
PERFORM dynpro USING: 'X' 'MP000600' '2004',
' ' 'BDC_OKCODE' '=UPD'.
PERFORM dynpro USING: 'X' 'SAPMPAP4' '0104',
' ' 'BDC_OKCODE' '/EEBAC'.
PERFORM dynpro USING: 'X' 'SAPMP50A' '4200',
' ' 'BDC_OKCODE' '/EBCK'.
endif.
CALL transaction 'PB40' USING idata mode 'N' UPDATE 'N' MESSAGES INTO messtab.
as you can see the recording does not go through this dynpro.
Edited by: Jon Azkorra on May 30, 2011 3:21 PM
Edited by: Jon Azkorra on May 30, 2011 3:22 PM
Edited by: Jon Azkorra on May 30, 2011 3:23 PM
Edited by: Jon Azkorra on May 30, 2011 3:23 PM
Edited by: Jon Azkorra on May 30, 2011 3:23 PM
Edited by: Jon Azkorra on May 30, 2011 3:24 PM -
Dear All
We have a situation in a synchronous interface involving BPM.
IDoc <-> PI (BPM) <-> Legacy
We have observed that whenever an iDoc is triggered from SAP system it gets stuck in SMq2. These entries are cleared when we unlock the queues.
Same happens when the response from Legacy comes in. But at the final stage when BPM is pushing the response back to SAP system it gets stuck in TRFc. In moni we can see b/w flag but Outbound Status carries a green flag (Message Scheduled on outbound side)
When I go to SM58 I can see few entries with status text: Transaction Recorded . Each time i have to execute the LUW to clear it.
Is there anything wrong in the settings which is causing this.
I have done full cahe refresh but no help
Regards
Sourabhhi,
once you have to check Queues are registered in sxmb_adm /not?
if not registered then follow bellow path:
SXMB_ADM->Manage Queues->Register queues->Activate Queues.
After doing this steps,then goto SMQ2->Select all the queues actiavte and unlock it.
Once u done all these steps,queues automatically will go.
(OR) refer from step 6 in below link
[help|http://help.sap.com/SAPHELP_NW04S/helpdata/EN/12/5dd23aaad7b3408dde3c1577fda5b3/content.htm]
Maybe you are looking for
-
Hi all, This code converts english date to japanese date but it is working fine in english only. can any body answer why it is so. Note : No Comiplation problem in jdk 1.5 This code works fine in JDK 6.0 but not in JDK 1.5, Why.....? SimpleDateFormat
-
I tried transferring the purchases, but it didn't move my playlists over. I have also tried backing my old library up to a disc, and putting it in my new computer, but it still didn't transfer my playlists. Is there any way I can transfer my old itun
-
I have the same problem as many other users: updated iTunes on Windows 7 on Jan 26, 2014 and iTunes does not open. First message "unable to locate component- MSVCR80.dll was not found" then "iTunes was not installed correctly. Please reinstall iTune
-
I recently purchased a MacBook Pro with Retina. Which adapter do I purchase to connect it to a Samsung TV for the best quality? Thanks.
-
Purchase Order created against sales order.. report
Hi Folks! I want to see purchase orders created against sales orders. Is there any report? Regards