Synchronous transmission with 2 asynchronous scenario's.
Hi All,
I have 2 asynchronous scenario's transferring file from one ftp location to another and vice-versa.
I want 2 start the second scenario only when the file sent by first scenario is successfully reached.
I want to know how and where to put this condition that transfer this file only when a particular file is present in that folder??
Regards,
Amit Sharma.
Hi,
For this type of requirement you can do the following:
1) Create an additional file in target directory with same name as the file is pasted in the target directory but with different extension (example .eod file ) whenever the original file is picked from first interface.
2) Now for the second Interface to get executed check if ther is .eod file existing then pick the original file. (this can be done using additional file parameter option).
Regards,
Sainath Chutke
Similar Messages
-
Acknowldegement in asynchronous scenario: is it sync or async
Dear community,
in an asynchronous scenario with a fault message type defined for the inbound interface, the handover of a message from XI to receiver consists of two steps:
Step 1: XI will send a message to the receiver
Step 2: The receiver will acknowledge positively or negatively.
Will Step 1 and Step 2 be handeled synchronously or will it be handeled asynchronously for async scenarios ?
The background of this question is resource-related. If the processing of a message is synchronous, processing of these two steps would block resources, which would be problematic for higher volumes.
Logically it seems as if this would all be async but I could not find a detailled spec and I need to know for sure.
Thanks a lot in advance !
JochenHi Jochen,
if you want to have the result of a message at the receiver you have 2 alternatives:
Synchronous:
+You get the errors at once
+You know very soon, what happend
-Bad performance, bcoz processing time may be for minutes stopped
-no connection (receiver offline) leads to an error
Asynchronous with acknowledgement:
-You get only sometimes an error acknowledgement
-The calling programm has no direct information
+Much better performance
+Queing mechanism allows automaticly and manually restart
Usually you try to build, if possible, asynchronous scenarios. But it depends on requirements.
Regards,
Udo -
IDOC to SOAP asynchronous scenario Error handling
Need an expert!!!!!!!!! advise on error handling for IDOC--PI--
SOAP scenario.This is a asynchronous scenario where PI is calling a Legacy system using SOAP adapter.My question is how i can do error handling in this scenario.If i get an alert in pi with payload variable that would be fine, do i need to use BPM and if that is tthe case what will be steps.
Appreciate your help.
ManishHello Manish,
My question is how i can do error handling in this scenario.
Use the standard alert framework. Search on SDN / SAP Help for details.
do i need to use BPM and if that is tthe case what will be steps.
BPM is not required to raise alerts, as this is an async call.
Regards,
Neetesh -
Hello,
I have been programming in Java for a while but today is my first shot at NIO.
I'm implementing a custom protocol over TCP between a java server and several Java and C clients. The classical one-thread-per-client approach works with a couple of test connections, but I'm afraid it will not scale:
- I will not have control on all clients programs
- I don't know yet the expected traffic
- I might introduce bugs as well in the sever program and leak sockets and threads
Here is the code for the classical approach:
ServerSocket server.accept() = ...;
Socket client = server.accept();
Thread clientThread = new ClientThread(client);
clientThread.start();Where ClientThread's run method deos the following:
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
while (isConnected) {
String pdu = reader.readLine();
storeClientInfo(pdu);
}The key is that in order to make for a very simple protocol we designed it so that each PDU is one line of text, sent over TCP. Reading one PDU is therefiore a synchronous operation.
In order to provision scaling to many clients, we are trying to reimplement it using NIO.
We use a Selector to wait for requests, and once accepted, we register the Selector with the created SocketChannel (one per client).
One single thread dequeues reads selected by the Selector, but we are still trying to read using the synchronous BufferredReader.
When a SocketChannel has readable data, we create a Buffered reader like this:
BufferedReader reader = new BufferedReader(new InputStreamReader(socketChannel.socket().getInputStream()));
String pdu = reader.readLine(); // throws IllegalBlockingModeException
}And as you probably expect, we get an IllegalBlockingModeException when reading the line (synchronous operation) over the (asynchronous) socket.
If my understanding is correct, the SocketChannel has to be put in non-blocking mode to be selectable by the Selector (otherwise the register(...) call throws an IllegalBlockingStateException), but it cannot be read synchronously in this non-blocking mode.
Is there any way I can connect a BufferedReader to a non-blocking SocketChannel somehow?
There would be an alternative approach, where the listeing thread reads the data from the SocketChannel into a ByteBuffer, then stuffs those bytes into a PipedOutputStream, and build a reader over a PipedInputStream.
The problem is that in this case, we need, again, one thread per client to read the data froml the reader...
There's a third approach, where we would use the "attachment" feature of SocketChannel.register() and SelectedKey; in this approach, the attachment could be a stringBuffer; each time the Selector warns us that data is readable, the data would be read from the SocketChannel into a ByteBuffer. then added to the StringBuffer. We would have to analyze the StringBuffer's content to find out whether it contains a whole line, and only then extract this line as the "PDU".
Is this a recommended approach?
Thanks in advance, and regards,
J.
Message was edited by: jduprez (some code markers had been swallowed)
Message was edited by:
jduprezOK, thanks.
I implemented this third approach, and it works under moderate load. The difficulty though, is that what I can read from the channel is a chunk of binary data, possibly incomplete, and that possibly doesn't even translate to valid chars (for example, a 16-bits char may be cut in-between and I get only the first byte).
That orients me to a binary protocol (at least, to a protocol where I can identify "end of message " markers at the binary level).
Alternately, if I can ensure all my messages fit a UDP packet, I'd better stuff the String in a UDP packet on the client end, and decode a String from the UDP received (atomically) on the server end.
I'd lose TCP's relative reliability, but simplify the programming model for the protocol handling...
I'm still free to choose the transport at this step of the project...
Any recommendation? -
How to handle an asynchronized scenario?
Hi, there:
I had an asynchronized scenario in my web application. After client side collecting information and click "submit", my servlet in server side is supposed to wrap those information in a transaction and send it to 3rd party engine, however, the response of that transaction from the 3rd party engine is asynchronized (may take several minutes).
Question:
At client side, after user click "submit", what should I do?
a. tell user transaction is submitted successfully, and ask him to check response later;
b. display some information like "please wait, your transaction is processing ..........", and my servlet keeps polling response, and send html response back after get response from 3rd party?
c. Or, servlet send response back immediately, however, somehow to get client side keeps sending request to servlet to check the status of transaction?
Highly appreciated if any suggestion or comments.
Thanks a lot in advance
DavidYou are waiting
for card authorization back. How do they handle those
scenario? like during waiting for response, the
client navigate to other links, or even shut down the
browser.You can't do anything about clients who don't wait for a response. You can't even find out that they didn't wait. If your response time is going to be fairly reasonable -- a few seconds, maybe up to 30 seconds -- then displaying scary warnings may persuade the client to wait. If your response time is going to be a minute or more, then you are just going to annoy people. One option in that case is to get the client's e-mail address. Then your servlet would just send a trivial response ("Thank you for your order, you will be notified when it is processed") and put the job in a queue to be handled off-line. Handling of the job would involve sending a confirmation e-mail.
Or you could provide another page where the user can keep track of the progress of his request, which your off-line system is updating whenever it does something with it.
Also, for those time consuming tasks in
serverside, if hundreds of requests come at almost
the same time, will it cause some problem in server
side? like performance, resource issue?Sure it could. There are people who do nothing but tune Web servers for a living. -
Disadvantage on synchronous proxy compared to asynchronous proxy
Hi friends,
Please tell me any disadvantage on Synchronous Proxy compared to asynchronous proxy.
My integration JDBC to PROXY and PROXY to JDBC. Inspite of using the proxy in syn mode i have used asyn proxy, now i have to give the proper answer y i have used asyn proxy, so please give me any drawbacks of syn proxy.
Thanks in advace
KarthikeyanHi Karthikeyan,
The main disadvantage of synchronous communication is for every request there should be corresponding response from the receiver, if for any reason receiver doesnt respond there will not be any further message processing. So, its better to go with asynchronous communication.
Thanks,
Bharath. -
How to get Acknowledgement from legacy system in an Asynchronous scenario?
Hello Experts,
My current scenario is to send an invoice from ECC --> ABAP proxy --> PI --> webservice --> Legacy system & I need acknowledgement back to ECC system from legacy system. How SAP XI acknowledgements work in asynchronous scenarios?
Please guide.
Thanks & Regards,
Nidhi KukrejaHi nidhi,
please check following link
http://help.sap.com/saphelp_nw04/helpdata/EN/44/932e8896b610bbe10000000a422035/frameset.htm
Also check this one.
http://help.sap.com/saphelp_nw04/helpdata/EN/f4/8620c6b58c422c960c53f3ed71b432/frameset.htm
hope this helps..
- Deepak. -
Error in transmission with BBPSC01
I have typical problem where in
When ordered, SC created via BBPSC02 goes through without errors. But the cart that is created via BBPSC01 will have ' Error in Transmission, With an error 'SE142 please enter qunatity in line 3000111'. This error is coming from the backend in the RFC mode while debugging BBP_REQREQ_TRANSFER.
This happens only when number items in the cart are more than four, if the items were less than or equal to 4, follow on document is created even in case of BBPSC01.
We are implementing BADI for Follow-on-Document for service-category.
May I know 1.what could be the difference between these two templates.2.And where they exactly these dump the values 3. How could I go from here 4.what fields I need to look while debugging.
Input will be:
BBPSC02: User selects description item and the service button, enters the price, quantiy as 1 service unit and selects the a specific-service-Category
BBPSC01: Selects the Same category as in BBPSC02 enters the same data .
Thank you,
ManyamThank you.
This is a long code please bear with me. And provide your suggestion.
METHOD if_ex_bbp_create_req_back~fill_req_interface.
Method Parameters:
*LOGICAL_SYSTEM TYPE BBP_BACKEND_DEST-LOG_SYS OPTIONAL
*REQ_ITEMS TYPE BBP_REQ_ITEM_SPOOL
*REQ_ITEM_ACCOUNT TYPE BBP_REQ_ACCT_SPOOL
*REQ_ITEM_TEXT TYPE BBP_REQ_TEXT_SPOOL
*REQ_LIMITS TYPE BBP_REQ_LIMITS_SPOOL
*REQ_CONTRACT_LIMITS TYPE BBP_REQ_LIMITS_CONTR_SPOOL
*REQ_SERVICES TYPE BBP_REQ_SERV_SPOOL
*REQ_SERV_ACCOUNT TYPE BBP_REQ_SERV_ACC_SPOOL
*REQ_SERV_TEXT TYPE BBP_REQ_SERV_TEXT_SPOOL
*REQ_ADDRDELIVERY TYPE BBP_REQ_ADDRDELIVERY_SPOOL
This is the logic to create a Service Requisition based on a service
material group selected in the Shopping Cart. This logic is based on
SAP's standard function SPOOL_RQ_READ_BAPI_EXPORTS from which this
BADI is called.
INSERT FUNCTION SPOOL_RQ_READ_BAPI_EXPORTS TO REPROCESS DATA FOR
SERVICE SPECIAL REQUESTS. -- IOK 07/13/01
*function spool_rq_read_bapi_exports.
""Lokale Schnittstelle:
*" IMPORTING
*" VALUE(REQNO) LIKE REQHEAD-REQNO
*" VALUE(REQUIS_NUMBER) LIKE BAPIEBANC-PREQ_NO
*" EXPORTING
*" VALUE(SKIP_ITEMS_WITH_ERROR) LIKE BAPIMMPARA-SELECTION
*" VALUE(LOGICAL_SYSTEM) LIKE BBP_BACKEND_DEST-LOG_SYS
*" TABLES
*" REQUISITION_ITEMS STRUCTURE BAPIEBANC
*" REQUISITION_ACCOUNT_ASSIGNMENT STRUCTURE BAPIEBKN
*" REQUISITION_ITEM_TEXT STRUCTURE BAPIEBANTX
*" REQUISITION_LIMITS STRUCTURE BAPIESUHC
*" REQUISITION_CONTRACT_LIMITS STRUCTURE BAPIESUCC
*" REQUISITION_SERVICES STRUCTURE BAPIESLLC
*" REQUISITION_SRV_ACCASS_VALUES STRUCTURE BAPIESKLC
*" RETURN STRUCTURE BAPIRETURN
*" REQUISITION_SERVICES_TEXT STRUCTURE BAPIESLLTX
*" REQUISITION_ADDRDELIVERY STRUCTURE BBPS_RQADDRDELIVERY_46
*" CONTROL_RECORD STRUCTURE BBP_CONTROL_RECORD
*" EXCEPTIONS
*" INTERNAL_ERROR
---- Data Declaration - from LBBP_BS_RQTOP -
- Header -
DATA: reqheader TYPE reqhead.
- Header services -
DATA: reqheaders TYPE reqheads.
- References -
TYPES: reqreferences_type TYPE reqref.
DATA: reqreferences TYPE STANDARD TABLE OF reqreferences_type
INITIAL SIZE 10.
DATA: l_reqreferences TYPE reqreferences_type,
x_reqreferences TYPE reqreferences_type.
- Administrative lines requirement request -
TYPES: reqlines_type TYPE reqline.
DATA: reqlines TYPE STANDARD TABLE OF reqlines_type
INITIAL SIZE 10.
DATA: l_reqlines TYPE reqlines_type.
- MRO-Lines requirement request -
TYPES: reqlinemas_type TYPE reqlinema_eci.
DATA: reqlinemas TYPE STANDARD TABLE OF reqlinemas_type
INITIAL SIZE 10.
DATA: l_reqlinemas TYPE reqlinemas_type.
- SRV-Lines requirement request -
TYPES: reqlinesrs_type TYPE bbps_reqlinesr_eci.
DATA: reqlinesrs TYPE STANDARD TABLE OF reqlinesrs_type
INITIAL SIZE 10.
DATA: l_reqlinesrs TYPE reqlinesrs_type.
- Texts requirement request -
TYPES: reqtexts_type TYPE reqtext.
DATA: reqtexts TYPE STANDARD TABLE OF reqtexts_type
INITIAL SIZE 10.
DATA: l_reqtexts TYPE reqtexts_type.
*- Delivery address
TYPES: reqaddress_type TYPE reqaddress.
DATA: reqaddress TYPE STANDARD TABLE OF reqaddress_type
INITIAL SIZE 10.
DATA: l_reqaddress TYPE reqaddress_type.
- Account assignment requirement request -
TYPES: reqaccts_type TYPE reqacct_470.
DATA: reqaccts TYPE STANDARD TABLE OF reqaccts_type
INITIAL SIZE 10.
DATA: l_reqaccts TYPE reqaccts_type.
- tablekey with the shortlife-line -
DATA: BEGIN OF shortkey,
client TYPE ec_client, "REQLINE-CLIENT,
reqno TYPE ec_reqno, "REQLINE-REQNO,
reqsline TYPE reqsline, "REQLINE-REQSLINE,
reqlline TYPE reqlline, "REQLINE-REQLLINE,
END OF shortkey.
- tablekey with the longlife-line -
DATA: BEGIN OF longkey,
client TYPE ec_client, "REQLINE-CLIENT,
reqno TYPE ec_reqno, "REQLINE-REQNO,
reqlline TYPE reqlline, "REQLINE-REQLLINE,
END OF longkey.
DATA: BEGIN OF bankey,
preq_no TYPE banfn, "BAPIEBAN-PREQ_NO,
preq_item TYPE bnfpo, "BAPIPOGN-PREQ_ITEM,
END OF bankey.
any other working fields
DATA: h_preq_item TYPE bnfpo, "BAPIEBANC-PREQ_ITEM,
h_srv_item TYPE bnfpo, "BAPIEBANC-PREQ_ITEM,
h_logsys TYPE log_system. "reqref-logical_system.
DATA: h_serial_no TYPE dzebkn. "BAPIEBKN-SERIAL_NO.
DATA: h_packno_item TYPE packno, "BAPIESLL-PCKG_NO,
h_packno_srv TYPE packno, "BAPIESLL-PCKG_NO,
h_introw TYPE srv_line_no, "BAPIESLL-LINE_NO,
h_serial_no_srv TYPE dzekkn, "BAPIESKN-SERIAL_NO,
h_srv_outl_created,
next TYPE i,
h_index LIKE sy-tabix,
h_wempf TYPE wempf. "bapiekkn-gr_rcpt.
------ End of std data declaration -
DATA: l_req_items TYPE bapiebanc,
l_req_item_account TYPE bapiebkn,
l_req_item_text TYPE bapiebantx,
l_req_limits TYPE bapiesuhc,
l_req_contract_limits TYPE bapiesucc,
l_req_services TYPE bapiesllc,
l_req_serv_account TYPE bapiesklc,
l_req_serv_text TYPE bapieslltx,
l_req_addrdelivery TYPE bbps_rqaddrdelivery_46.
DATA:
old_req_items TYPE STANDARD TABLE OF bapiebanc,
old_req_item_account TYPE STANDARD TABLE OF bapiebkn,
old_req_item_text TYPE STANDARD TABLE OF bapiebantx,
old_req_limits TYPE STANDARD TABLE OF bapiesuhc,
old_req_contract_limits TYPE STANDARD TABLE OF bapiesucc,
old_req_services TYPE STANDARD TABLE OF bapiesllc,
old_req_serv_account TYPE STANDARD TABLE OF bapiesklc,
old_req_serv_text TYPE STANDARD TABLE OF bapieslltx,
old_req_addrdelivery TYPE STANDARD TABLE OF
bbps_rqaddrdelivery_46.
DATA: l_mat_group TYPE comm_category-category_id.
DATA: f_change_required TYPE c,
f_limit_change TYPE c,
f_mat_sr_change TYPE c,
f_first_change TYPE c VALUE 'X'.
Data declaration for Shopping Cart number and PO number
DATA: reqno TYPE ec_reqno,
requis_number TYPE banfn.
DATA: l_current_item TYPE bnfpo,
line_item(5) TYPE n.
---- Begin Processing ----
DATA: l_requis_number TYPE banfn. "jms 022802
DEBUG TOOL ****** Goto SM50
*data: i type i value 1.
*while i <> 0.
i = i + 1.
*endwhile.
END DEBUG TOOL *******
Get Req Number and Shopping Cart Number
read table req_items into l_req_items index 1.
requis_number = l_req_items-preq_no.
select single reqno
into (reqno)
from reqref
where refnumber = requis_number.
read detailed data from the requirement request
call function 'BBP_REQREQ_GETDETAIL'
EXPORTING
reqno = reqno
IMPORTING
req_header = reqheader
req_header_srv = reqheaders
TABLES
req_reference = reqreferences
req_line = reqlines
req_line_mat = reqlinemas
req_line_srv = reqlinesrs
req_text = reqtexts
req_acct = reqaccts
req_address = reqaddress
EXCEPTIONS
not_found = 1
foreign_lock = 2
no_enqueue_possible = 3
others = 4.
if sy-subrc <> 0.
raise internal_error.
exit.
endif.
Begin JMS
PO_NUM = PO_HEADER-PO_NUMBER.
CMH Data declaration
TYPES: et_header TYPE bbp_pds_sc_header_d.
DATA: t_et_header TYPE STANDARD TABLE OF et_header INITIAL SIZE 0,
x_et_header TYPE et_header.
TYPES: et_item TYPE bbp_pds_sc_item_d.
DATA: t_et_item TYPE STANDARD TABLE OF et_item INITIAL SIZE 0,
x_et_item TYPE et_item.
TYPES: sc_header TYPE bbp_pds_sc_header_d.
DATA: x_sc_header TYPE sc_header.
TYPES: sc_is_pd TYPE xfeld.
DATA: l_sc_is_pd TYPE sc_is_pd.
TYPES: sc_item TYPE bbp_pds_sc_item_d.
DATA: t_sc_item TYPE STANDARD TABLE OF sc_item INITIAL SIZE 0,
x_sc_item TYPE sc_item.
TYPES: sc_account TYPE bbp_pds_acc.
DATA: t_sc_account TYPE STANDARD TABLE OF sc_account INITIAL SIZE 0,
x_sc_account TYPE sc_account.
TYPES: sc_partner TYPE bbp_pds_partner.
DATA: t_sc_partner TYPE STANDARD TABLE OF sc_partner INITIAL SIZE 0,
x_sc_partner TYPE sc_partner.
TYPES: sc_confirm TYPE bbp_pds_con.
DATA: t_sc_confirm TYPE STANDARD TABLE OF sc_confirm INITIAL SIZE 0,
x_sc_confirm TYPE sc_confirm.
TYPES: sc_longtext TYPE bbp_pds_longtext.
DATA: t_sc_longtext TYPE
STANDARD TABLE OF sc_longtext INITIAL SIZE 0,
x_sc_longtext TYPE sc_longtext.
TYPES: sc_limit TYPE bbp_pds_limit.
DATA: t_sc_limit TYPE STANDARD TABLE OF sc_limit INITIAL SIZE 0,
x_sc_limit TYPE sc_limit.
TYPES: sc_orgdata TYPE bbp_pds_org.
DATA: t_sc_orgdata TYPE
STANDARD TABLE OF sc_orgdata INITIAL SIZE 0,
x_sc_orgdata TYPE sc_orgdata.
TYPES: sc_tax TYPE bbp_pds_tax.
DATA: t_sc_tax TYPE STANDARD TABLE OF sc_tax INITIAL SIZE 0,
x_sc_tax TYPE sc_tax.
TYPES: sc_pridoc TYPE bbp_pds_prc.
DATA: t_sc_pridoc TYPE STANDARD TABLE OF sc_pridoc INITIAL SIZE 0,
x_sc_pridoc TYPE sc_pridoc.
TYPES: sc_messages TYPE bbp_pds_messages.
DATA: t_sc_messages TYPE
STANDARD TABLE OF sc_messages INITIAL SIZE 0,
x_sc_messages TYPE sc_messages.
TYPES: sc_actval TYPE bbp_pds_actval.
DATA: t_sc_actval TYPE STANDARD TABLE OF sc_actval INITIAL SIZE 0,
x_sc_actval TYPE sc_actval.
TYPES: sc_acc_actval TYPE bbp_pds_actval.
DATA: t_sc_acc_actval TYPE STANDARD TABLE OF sc_acc_actval
INITIAL SIZE 0,
x_sc_acc_actval TYPE sc_acc_actval.
TYPES: sc_header_rel TYPE bbp_pds_hrel.
DATA: t_sc_header_rel TYPE STANDARD TABLE OF sc_header_rel
INITIAL SIZE 0,
x_sc_header_rel TYPE sc_header_rel.
TYPES: sc_itmlim_rel TYPE bbp_pds_ilrel.
DATA: t_sc_itmlim_rel TYPE STANDARD TABLE OF sc_itmlim_rel
INITIAL SIZE 0,
x_sc_itmlim_rel TYPE sc_itmlim_rel.
TYPES: it_cuf_item_type TYPE bbps_cuf_item.
DATA: t_it_cuf_item TYPE STANDARD TABLE OF it_cuf_item_type
INITIAL SIZE 0,
x_it_cuf_item TYPE it_cuf_item_type.
- Contract limits -
TYPES: reqconlimits_type TYPE reqheads.
DATA: reqconlimits TYPE STANDARD TABLE OF reqconlimits_type
INITIAL SIZE 10.
DATA: l_reqconlimits TYPE reqconlimits_type.
DATA: lv_abort TYPE xfeld,
lv_is_pd TYPE xfeld,
lv_deliv_date LIKE sy-datum,
lv_tabix LIKE sy-tabix,
lv_line TYPE introw,
lv_msarg TYPE char200,
lv_sc_guid TYPE bbp_pdview_iap-header,
lv_req_guid TYPE bbp_pdview_iap-header.
DATA: x_requis_number TYPE bapiebanc.
IF NOT req_items[] IS INITIAL.
CLEAR l_requis_number.
READ TABLE req_items INTO x_requis_number INDEX 1.
l_requis_number = x_requis_number-preq_no.
requis_number = x_requis_number-preq_no.
ENDIF.
Get PO Guid from Backend Table.
SELECT SINGLE guid
INTO lv_req_guid
FROM bbp_pdbei
WHERE be_object_id = l_requis_number
AND be_object_type = 'BUS2105'.
Get Shopping Cart Guid from PO Guid
SELECT SINGLE header
INTO lv_sc_guid
FROM bbp_pdview_iap
WHERE guid = lv_req_guid.
Get detail from shopping cart
CALL FUNCTION 'BBP_PD_SC_GETDETAIL'
EXPORTING
i_guid = lv_sc_guid
i_with_itemdata = 'X'
IMPORTING
e_header = x_sc_header
ev_is_pd = l_sc_is_pd
TABLES
e_item = t_sc_item
e_account = t_sc_account
e_partner = t_sc_partner
e_confirm = t_sc_confirm
e_longtext = t_sc_longtext
e_limit = t_sc_limit
e_orgdata = t_sc_orgdata
e_tax = t_sc_tax
e_pridoc = t_sc_pridoc
e_messages = t_sc_messages
e_actval = t_sc_actval
e_acc_actval = t_sc_acc_actval
e_header_rel = t_sc_header_rel
e_itmlim_rel = t_sc_itmlim_rel.
lv_is_pd = l_sc_is_pd.
message handling
IF NOT t_sc_messages[] IS INITIAL.
CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
IMPORTING
ev_abort = lv_abort
TABLES
it_messages = t_sc_messages.
ENDIF.
if error occured set alert/ exception.
IF NOT lv_abort IS INITIAL.
CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
EXPORTING
msgid = 'BBP_PD'
msgno = 280
msgarg1 = lv_msarg
EXCEPTIONS
invalid_parameters = 1
OTHERS = 2.
RAISE internal_error.
ENDIF.
map shopping cart in new structure into old structure to be able
to continue with the old coding
REFRESH t_sc_messages.
CALL FUNCTION 'BBP_SC_MAP_PD_TO_REQ'
EXPORTING
is_new_header = x_sc_header
IMPORTING
es_reqhead = reqheader
es_req_heads = reqheaders
es_cuf_header = is_cuf_header
TABLES
et_req_reference = reqreferences
et_req_line = reqlines
et_req_line_mat = reqlinemas
et_req_line_srv = reqlinesrs
et_req_text = reqtexts
et_req_acct = reqaccts
et_req_address = reqaddress
et_req_conlimit = reqconlimits
it_new_items = t_sc_item
it_account = t_sc_account
it_partner = t_sc_partner
it_longtext = t_sc_longtext
it_limit = t_sc_limit
it_orgdata = t_sc_orgdata
it_tax = t_sc_tax
it_actval = t_sc_actval
it_itmlim_rel = t_sc_itmlim_rel
et_messages = t_sc_messages.
et_cuf_item = it_cuf_item
et_cuf_acc = it_cuf_acc.
IF NOT t_sc_messages[] IS INITIAL.
message handling
CALL FUNCTION 'BBP_BS_ADD_MESSAGES'
IMPORTING
ev_abort = lv_abort
TABLES
it_messages = t_sc_messages.
ENDIF.
if error occured set alert/ exception.
IF NOT lv_abort IS INITIAL.
CALL FUNCTION 'BBP_ALERT_SB_LOCAL'
EXPORTING
msgid = 'BBP_PU'
msgno = 326
msgarg1 = lv_msarg
EXCEPTIONS
invalid_parameters = 1
OTHERS = 2.
RAISE internal_error.
ENDIF.
End insert 03/26/2003
ReqReferences doesn't list the PO item number. We'll need that to
associate the WBS to a Service Sub Item later. Let's put it in.
SORT reqreferences BY client refnumber reqlline.
LOOP AT reqreferences INTO x_reqreferences.
IF x_reqreferences-refline IS INITIAL.
IF l_requis_number = x_reqreferences-refnumber. "jms 022802
ADD 1 TO line_item.
ELSE.
l_requis_number = x_reqreferences-refnumber. "jms 022802
line_item = 1.
ENDIF.
Accumulate the line item
x_reqreferences-refline = line_item.
MODIFY reqreferences FROM x_reqreferences INDEX sy-tabix.
ENDIF.
ENDLOOP.
SORT reqlines BY client reqno reqlline.
SORT reqreferences BY client reqno reqlline counter.
SORT reqlinemas BY client reqno reqsline reqlline.
SORT reqlinesrs BY client reqno reqsline reqlline.
SORT reqaccts BY client reqno reqlline serial_no. " note 359605
CLEAR: h_preq_item.
CLEAR: h_srv_item, h_srv_outl_created,
h_packno_item, h_packno_srv, h_introw.
First, the Shopping Cart number should be extracted from REQREF table
based on the Req number.
take all items with the specific reference number
LOOP AT reqreferences
INTO l_reqreferences "iok 091701
WHERE refnumber EQ requis_number.
if logical_system is initial.
logical_system = l_reqreferences-logical_system.
endif.
MOVE-CORRESPONDING l_reqreferences TO longkey.
read table reqlines with key longkey binary search.
READ TABLE reqlines INTO l_reqlines "iok 091701
WITH KEY client = longkey-client
reqno = longkey-reqno
reqlline = longkey-reqlline
BINARY SEARCH.
CHECK sy-subrc EQ 0.
h_preq_item = l_reqlines-reqsline+5(5).
clear h_preq_item.
Change line_type based on Material Group
add code here later.
CLEAR: f_change_required,
f_mat_sr_change,
f_limit_change.
SELECT SINGLE category_id
INTO l_mat_group
FROM comm_category
WHERE category_guid = l_reqlines-category.
Check if Services Special Request
IF l_reqlines-catalogid IS INITIAL AND
l_reqlines-product IS INITIAL AND
l_mat_group(1) = 'S' AND
l_reqlines-line_type = '1'. "Service Special Request
Set flags for future processing
l_reqlines-line_type = '3'.
f_change_required = 'X'.
f_limit_change = 'X'.
Check if Material Special Request
ELSEIF l_reqlines-catalogid IS INITIAL AND
l_reqlines-product IS INITIAL AND
l_mat_group(1) <> 'S' AND
l_reqlines-line_type = '1'. "Material Special Request
Set flags for future processing
f_change_required = 'X'.
f_mat_sr_change = 'X'.
ENDIF.
CHECK f_change_required = 'X'.
For Material Special Requests only need to select and store UNSPSC
code -- iok 092401
IF f_mat_sr_change = 'X'.
Get UNSPSC code (first hit) based on Material Group and store
in text id B05. iok 092101
READ TABLE req_items INTO l_req_items
WITH KEY preq_item = h_preq_item
mat_grp = l_mat_group.
READ TABLE req_item_text INTO l_req_item_text
WITH KEY preq_no = requis_number
preq_item = l_req_items-preq_item
text_id = 'B05'.
IF sy-subrc <> 0.
CLEAR l_req_item_text.
Find a UNSPSC Code from a Material Group .. even it's arbitrary
SELECT unspsc_code UP TO 1 ROWS
FROM zxl8_category_id
INTO l_req_item_text-text_line
WHERE category_id = l_mat_group.
ENDSELECT.
If nothing found then fill in a dummy UNSPSC. The first
letter of the Material will designate whether it's a Material
or Service.
IF sy-subrc NE 0.
Move the Material Group value into a holding variable
CONCATENATE l_mat_group(1) 'XXXXXXXX'
INTO l_req_item_text-text_line.
ENDIF.
l_req_item_text-preq_no = requis_number.
l_req_item_text-preq_item = l_req_items-preq_item.
l_req_item_text-text_id = 'B05'.
INSERT l_req_item_text INTO TABLE req_item_text.
ENDIF.
CONTINUE. "to next item.
ENDIF.
IF f_first_change = 'X' AND f_limit_change = 'X'.
Save old P.Req. data and clear tables
old_req_items[] = req_items[].
old_req_item_account[] = req_item_account[].
old_req_item_text[] = req_item_text[].
old_req_limits[] = req_limits[].
old_req_contract_limits[] = req_contract_limits[].
old_req_services[] = req_services[].
old_req_serv_account[] = req_serv_account[].
old_req_serv_text[] = req_serv_text[].
old_req_addrdelivery[] = req_addrdelivery[].
REFRESH: req_items,
req_item_account,
req_item_text,
req_limits,
req_contract_limits,
req_services,
req_serv_account,
req_serv_text.
req_addrdelivery.
CLEAR f_first_change.
ENDIF.
Limit
IF l_reqlines-line_type EQ '3'.
and not reqheaders-limit is initial.
DATA: l_reqreferences_temp TYPE reqreferences_type.
+JMS 2/26/2002
CLEAR l_reqreferences_temp.
READ TABLE reqreferences INTO l_reqreferences_temp
WITH KEY client = longkey-client
reqno = longkey-reqno
reqlline = longkey-reqlline
BINARY SEARCH.
IF sy-subrc = 0.
h_preq_item = l_reqreferences_temp-refline.
ENDIF.
CLEAR l_req_items.
READ TABLE old_req_items INTO l_req_items
WITH KEY preq_item = h_preq_item.
MOVE-CORRESPONDING l_req_items TO reqheaders.
reqheaders-begdate = l_req_items-deliv_date.
reqheaders-limit = l_req_items-c_amt_bapi.
reqheaders-exp_value = l_req_items-c_amt_bapi.
reqheaders-gr_ind = 'X'.
reqheaders-reqno = l_req_items-preq_no. "jms 022602
CLEAR l_req_items.
INSERT FORM **** CREATE_SERVICE_ITEM
h_packno_item = h_packno_item + 1.
h_packno_srv = h_packno_srv + 10000.
h_introw = h_introw + 1.
CLEAR l_req_items. " Note 364396
MOVE-CORRESPONDING reqheaders TO l_req_items.
l_req_items-preq_no = reqheaders-reqno. "jms 022602
l_REQ_ITEMS-PREQ_NO = REQUIS_NUMBER. "jms 022602
l_REQ_ITEMS-PREQ_ITEM = H_PREQ_ITEM + 1. "iok 091801
l_req_items-preq_item = h_preq_item. "iok 091801
l_current_item = h_preq_item. "iok 092101
h_srv_item = l_req_items-preq_item.
h_preq_item = h_preq_item + 1.
IF NOT reqheaders-limit IS INITIAL OR
NOT reqheaders-exp_value IS INITIAL.
IF reqheaders-gr_ind IS INITIAL.
l_req_items-item_cat = '1'.
ELSE.
l_req_items-item_cat = '9'.
ENDIF.
l_req_items-deliv_date = reqheaders-begdate.
ELSE.
l_req_items-item_cat = '9'.
ENDIF.
IF l_req_items-del_datcat IS INITIAL.
l_req_items-del_datcat = '1'.
ENDIF.
l_req_items-quantity = 1.
l_req_items-pckg_no = h_packno_item.
IF l_req_items-preq_name EQ space.
l_req_items-preq_name = sy-uname.
ENDIF.
APPEND l_req_items TO req_items.
END OF FORM INSERTION ********
l_req_limits-pckg_no = h_packno_item.
l_req_limits-limit = reqheaders-limit.
l_req_limits-exp_value = reqheaders-exp_value.
l_req_limits-no_limit = reqheaders-no_limit.
l_req_limits-no_frlimit = 'X'.
APPEND l_req_limits TO req_limits.
*.... Account assignment
clear requisition_srv_accass_values.
CLEAR l_req_serv_account.
l_req_serv_account-pckg_no = h_packno_item.
MOVE-CORRESPONDING l_reqlines TO longkey.
read table reqaccts with key longkey binary search. "iok 091801
READ TABLE reqaccts INTO l_reqaccts "iok 091801
WITH KEY client = longkey-client
reqno = longkey-reqno
reqlline = longkey-reqlline
BINARY SEARCH.
IF sy-subrc = 0.
LOOP AT reqaccts
INTO l_reqaccts
WHERE reqno = l_reqreferences-reqno
AND reqlline = l_reqreferences-reqlline.
INSERT FULL FORM *********** FILL_REQ_ACCT_SRV
DATA: acctcomp1 TYPE bapiebkn,
acctcomp2 TYPE bapiebkn,
high_serial TYPE dzekkn. "LIKE BAPIEKKN-SERIAL_NO.
CLEAR l_req_serv_account-serial_no.
CLEAR acctcomp1.
MOVE-CORRESPONDING l_reqaccts TO acctcomp1.
CLEAR: acctcomp1-preq_no,
acctcomp1-preq_item,
acctcomp1-serial_no,
acctcomp1-created_on,
acctcomp1-created_by,
acctcomp1-preq_qty,
acctcomp1-distr_perc,
acctcomp1-change_id,
acctcomp1-currency.
LOOP AT req_item_account INTO l_req_item_account.
CLEAR acctcomp2.
MOVE-CORRESPONDING l_req_item_account TO ACCTCOMP2. "is blank
CLEAR: acctcomp2-preq_no,
acctcomp2-preq_item,
acctcomp2-serial_no,
acctcomp2-created_on,
acctcomp2-created_by,
acctcomp2-preq_qty,
acctcomp2-distr_perc,
acctcomp2-change_id,
acctcomp2-currency.
IF acctcomp1 EQ acctcomp2 AND h_srv_outl_created IS INITIAL.
l_req_serv_account-serial_no = l_req_item_account-serial_no.
EXIT.
ENDIF.
high_serial = l_req_item_account-serial_no.
ENDLOOP.
h_srv_outl_created = ' '.
IF l_req_serv_account-serial_no IS INITIAL.
MOVE-CORRESPONDING l_reqaccts TO l_req_item_account.
l_REQ_item_ACCOUNT-PREQ_NO = REQUIS_NUMBER. "jms 022702
l_req_item_account-preq_no = l_req_items-preq_no."jms 022702
l_req_item_account-preq_item = h_srv_item.
REQUISITION_ACCOUNT_ASSIGNMENT-WBS_ELEM_E = REQACCT-BBP_PROJECT.
l_req_item_account-serial_no = high_serial + 1.
l_req_serv_account-serial_no = l_req_item_account-serial_no.
APPEND l_req_item_account TO req_item_account.
ENDIF.
END OF FORM INSERTION ***********
h_serial_no = h_serial_no + 1.
l_req_serv_account-serno_line = h_serial_no.
l_req_serv_account-percentage = l_reqaccts-distr_perc.
APPEND l_req_serv_account TO req_serv_account.
ENDLOOP.
INSERT FULL FORM **************** CONVERT_ACCOUNT_***_CAT
data: account_tab LIKE bbp_pds_acc OCCURS 0 WITH HEADER LINE.
DATA: account_tab TYPE STANDARD TABLE OF bbp_pds_acc.
DATA: l_account_tab TYPE bbp_pds_acc.
DATA: h_knttp TYPE knttp.
move the accounting data to that item into the interface table
LOOP AT reqaccts
INTO l_reqaccts
WHERE reqno EQ l_reqreferences-reqno
AND reqlline EQ l_reqreferences-reqlline.
MOVE-CORRESPONDING l_reqaccts TO l_account_tab.
APPEND l_account_tab TO account_tab.
ENDLOOP.
call the convert API
CALL FUNCTION 'BBP_ACCCAT_MAP_EXP'
EXPORTING
i_logical_system = logical_system
IMPORTING
e_r3_acc_cat = h_knttp
TABLES
i_pd_account = account_tab.
IF h_knttp IS INITIAL.
h_knttp = 'X'.
ENDIF.
+JMS 2/14/2002 Issue #1590
CLEAR account_tab.
REFRESH account_tab.
account assignment category - set in the correct item
LOOP AT req_items
INTO l_req_items
WHERE preq_item EQ l_req_item_account-preq_item.
l_req_items-acctasscat = h_knttp.
MODIFY req_items FROM l_req_items INDEX sy-tabix.
ENDLOOP.
END OF FORM INSERTION ************
ELSE.
INSERT FULL FORM ************* Form CONVERT_ACCOUNT_***_CAT_U
LOOP AT req_items
INTO l_req_items
WHERE preq_item EQ l_current_item.
l_req_items-acctasscat = 'U'.
MODIFY req_items FROM l_req_items INDEX sy-tabix.
ENDLOOP.
END OF FORM INSERTION ************
ENDIF.
Get UNSPSC code (first hit) based on Material Group and store
in text id B05. iok 092101
READ TABLE req_items INTO l_req_items
WITH KEY preq_item = l_current_item
mat_grp = l_mat_group.
READ TABLE req_item_text INTO l_req_item_text
WITH KEY preq_no = requis_number
preq_item = l_req_items-preq_item
text_id = 'B05'.
IF sy-subrc <> 0.
CLEAR l_req_item_text.
Get UNSPSC Code from Material Group .. even if arbitrary
SELECT unspsc_code UP TO 1 ROWS
FROM zxl8_category_id
INTO l_req_item_text-text_line
WHERE category_id = l_mat_group.
ENDSELECT.
If nothing found then fill in a dummy UNSPSC. The first
letter of the Material will designate whether it's a Material
or Service.
IF sy-subrc NE 0.
Move the Material Group value into a holding variable
CONCATENATE l_mat_group(1) 'XXXXXXX'
INTO l_req_item_text-text_line.
ENDIF.
l_req_item_text-preq_no = requis_number.
l_req_item_text-preq_item = l_req_items-preq_item.
l_req_item_text-text_id = 'B05'.
INSERT l_req_item_text INTO TABLE req_item_text.
ENDIF.
Don't send Internal Note to Backend
delete req_item_text where text_id = 'B02'.
Service -- NOT NEEDED -- IOK 07/13/01
elseif not reqlines-reqsline is initial
and reqlines-line_type eq '2'.
move-corresponding reqlines to shortkey.
read table reqlinesrs with key shortkey binary search.
if sy-subrc = 0.
h_serv = reqlinesrs.
append h_serv.
endif.
material item -- NOT NEEDED -- IOK 07/13/01
ENDIF.
ENDLOOP.
Services -- NOT NEED -- IOK 07/13/01
IF f_limit_change = 'X'.
Check multiple account assignment
LOOP AT req_items INTO l_req_items.
h_index = sy-tabix.
CLEAR next.
LOOP AT req_item_account
INTO l_req_item_account
WHERE preq_item EQ l_req_items-preq_item.
next = next + 1.
ENDLOOP.
IF next > 1.
l_req_items-distrib = '2'. "prozentuale Verteilung
l_req_items-part_inv = '1'.
l_req_items-gr_non_val = 'X'.
MODIFY req_items FROM l_req_items INDEX h_index. "217191
modify requisition_items. "217191
ENDIF.
ENDLOOP.
ENDIF.
Remap delivery address for backend processing
LOOP AT req_addrdelivery INTO l_req_addrdelivery.
MOVE: l_req_addrdelivery-name_2 TO l_req_addrdelivery-name,
l_req_addrdelivery-c_o_name TO l_req_addrdelivery-name_2.
CLEAR: l_req_addrdelivery-c_o_name.
MODIFY req_addrdelivery FROM l_req_addrdelivery INDEX sy-tabix.
ENDLOOP.
CHM 07/16/2003 Changed created by to always be actual creator even
for on behalf of situations
LOOP AT req_items
INTO l_req_items.
l_req_items-created_by = x_sc_header-created_by.
MODIFY req_items FROM l_req_items INDEX sy-tabix.
ENDLOOP.
CMH - end change
MA 12/10/04 - Pass MP2 number from Manu Prod# to Req Item Text
LOOP AT req_items INTO l_req_items.
READ TABLE t_sc_item into x_sc_item
WITH KEY number_int = l_req_items-preq_item.
l_req_item_text-preq_no = requis_number.
l_req_item_text-preq_item = l_req_items-preq_item.
l_req_item_text-text_id = 'B06'.
l_req_item_text-text_line = x_sc_item-manu_prod.
INSERT l_req_item_text INTO TABLE req_item_text.
ENDLOOP.
ENDMETHOD. -
Airplay disrupts transmission with Airport Express 6.2 and OS X 10.8.3 Any fixes known?
Looks like this is a known issue which has been fixed for Java 8:
https://javafx-jira.kenai.com/browse/RT-23328 "Mac: Impossible to use -splash:<image> with JavaFX 2.2 and JDK 7" -
Why i can not synchronous transmission in my ipod touch?
after i used others ID download the date my touch did not synchronous transmission,how can i do?thank you.
If the other ID did not belong to you it is not right to use other people IDs to download/purchase media.
-
IS Mapping required in JDBC to PROXY asynchronous scenario?
Hi,
I am working on JDBC to PROXY asynchronous scenario. The scheduled stored procedure fetches the data from database tables and stores them in staging table in the same database. XI will fetch the records via JDBC adapter. Now these records are to be posted into SAP custom table via proxy without any transformation. Now is Message mapping and Interface mapping required in this case?Hi
I assume that your source and traget structure will be different as you are using JDBC.
SO you will need to create message mapping and operation mapping.
-Deepak. -
Reservation with Extended classic scenario
Hi ;o)
I'm working at a costumer were we have extended classic scenario. We want to be able to make reservations in the backend if the item is on stock, and we have seen in a solution matrix from SAP that this should be possible.
The configuration for reservations should be done according to the guides - but no reservations is created when ordering a stock material.
I was searching on the developer network, and came across a topic, where it was stated that reservations could only be made with classic scenario (or using a BAdI where you switch the extended on and off depending on product category). Do any of you know if this is really a fact?
Thanks in advance
Maria Hvenegaard, DenmarkHi
Read this first.
<u>You can use BBP_CREATE_RES_BACK BADI using Se18 Transaction.
This BADI You can find in SPRO -> Supplier Rel. Mngmt. -> SRM Server -> Business Add-Ins -> Follow-on document generation -> Reservation in Backend System</u>
<u>If you want to create reservation, you have first to switch from ECS to classic scenario through BBP_EXTLOCALPO_BADI then you have to implement BBP_TARGET_OBJTYPE badi to determine the criteria to create a reservation in your backend.</u>
<u>We need to maintian the customising setings in SPRO Transaction.
Define objects in Back end systems. Maintain the document type EC or ECPO for Purchase Orders and not for creating reservations. Maintain number ranges (RS) and align the same to R/3 or backend systems. In setting up the org plan in the PPOMA_BBP Transaction, the attribute for resevation - Attribute BWA should be maintained too, if reservations are to be created in the backend system.
Movement Type Accounting Object
201 Cost Center
221 WBS-Element
231 Sales Order
241 Asset
Example :
logicalsystemname\201</u>
<u><b>Maintain the following Settings in the IMG using SPRO Transaction.</b>
1.For internal Procurement > 1.Always Reservation for Material types Subjected to inv Mgmt
2.For External Procurement >1.Always purchase Requisition.
Note -> The plant that you use to create the shopping cart might not be extended to handle inventory management. Select a right plant which is extended to inventory management and you will see a reservation being created.</u>
Be aware that:
- with the classic scenario you can create PR, PO and/or Reservations in R/3, but there is no local purchasing document (except the SC), so all functions around the local PO will not be possible.
- with the extended classic scenario, you can only create PO in the backend, but a local PO exists in SRM.
Concerning GR, it is possible to make it in SRM for both scenario
Hope this will help.
Please reward suitable points, incase it suits your requirements.
Regards
- Atul -
SRM 7 : Vendor record replication in backend with Extended Classic Scenario
Hello,
We are implementing SRM 7 with Extended Classic Scenario and Supplier Self-registration.
Can you explain what is to be configured to get the new vendors replicated to the backend?
Thanks in advance.Hi,
It is possible to transfer suppliers to ERP system, if you use 'Supplier registration with ERP' scenario. After registration and acceptance, newly registered suppliers would appear on supplier monitor from where you can transfer them to backend system.
Check the below link for more details:
http://help.sap.com/saphelp_srm50/helpdata/en/cf/35074152aff323e10000000a155106/frameset.htm
Regards,
Sanjeev -
REM with Co-Product scenario.
Dear Friends,
Can we use REM with Co-product scenario? In CO-PRODUCT scenario, while creating the production order I am getting 2 line items in the settlement rule (one for the main item and another for the co-product). During GR w.r.t. order, system is proposing 2 materials with 101 movement. But in case of REM, system is creating single line item in the settlement rule. System is posting the co product also as by-product using the 531 movement only not as 131 movement. Hence clarify me... whether can we use co-product scenario along with REM or not??? Please note that I have used the same source structure.
If you need any further clarification, please let me know.
Regards,
Surya.Hi
CO Product scenario won't work in REM SCENARIo, Because Setllement is not an order based, Its a period based.
SAP WON"T recommended the coproduct scenario in REM. So please change the scenario to discrete or PP-PI for that material.
Pls refer the link for further clarification
Re: CO-product configuration in REM scenario
Regards,
Sundaresan.E.V
Edited by: Sundaresan . E. V on Dec 28, 2009 5:18 PM -
Is there an advantage in optical transmission with TTL that you lose with radio?
I have an ST-E3-RT and 4 600EX-RTs and that is all I use for lighting. I use both E-TTL and Manual. I always prefer to use my radio for E-TTL but was wondering, is there an advantage whatsoever for someone in my case to ever use optical when all I need is Radio transmission either in E-TTL or manual? Is there an advantage in optical transmission with E-TTL that you lose with radio? I read somewhere that may be the case where the optical communication between speedlights for determining exposure in TTL is more accurate with optical transmission than radio. It may be that the Nikon folks are pushing that thought but wanted to check. Thank you all.
Solved!
Go to Solution.RezaM wrote:
Thank you very much TCampbell. That's great information. So there's really no reason to use optical if I use 600s with an ST-E3-RT?
To answer the question you've been getting at all along - No, optical offers no advantage that can't be achieved with the proper RF system. Conversely, there are several advantages to RF that optical lack. It would be a handicap to use the optical system if you have 600s and a ST-E3-RT.
If you don't have that system yet, but are considering it, keep in mind there are alternate options that are cheaper and can even have features the Canon system doesn't - such as wireless second curtain sync.
Maybe you are looking for
-
I've purchased some songs from the itune store a while back and they played fine on my iphone and my computer. Just last night I tried listening to a playlist I created and some of the songs wouldn't play. They wouldn't work in itunes on the computer
-
Open file in Quark 7 and Finder text is scrambled
After I opened a Quark 7.31 document with font problems the text in the menu bar of my iMac running 10.5.2 got corrupted, starting words with 'x' or deleting the first character "Thu" on the clock read "hu" Apple menu also affected. Can an app mess u
-
Do the new 2014 MBPs support DisplayPort 1.2 MST?
Hi all, Do the recently released 2014 MacBook Pros support DisplayPort 1.2 MST for daisy chaining (e.g. daisy chaining two Dell U2713H monitors)? Thanks.
-
Stock android browser showing text in italics
hello, i just opened an account with verizon last night and purchased the s4 for myself and gf. i noticed while using the stock browser, all of the bold text is showing in italics. i tried various browsers including chrome, boat, and dolphin and th
-
I cannot open a file saved in CS6 Illustrator in CC
the error message says "could not read the file because the plug-in could not understand this file"