Help needed in debugging callablestatement changing performance
Looking for some help debugging a performance problem.
We are in the process of converting an ASP web application running on IIS to a java web application running on OAS. We have java code using a CallableStatement that calls an Oracle PL/SQL Procedure that runs inserts and updates as needed and does not return anything.
When the Java application calls the procedure using the same parameters and doing the exact same work the execution time is either 3 minutes or 30 minutes. We have narrowed down the location of the slowdown and when it takes 30 minutes to execute it appears to be hanging during a cursor execution. What would cause the execution times to vary so much?
Here's another piece to the puzzle. When the procedure is called from IIS with the exact same parameters that were used from OAS the procedure ALWAYS runs in 3 minutes. Why would IIS performance be so consistent and OAS so inconsistent?
Any debugging suggestions would be greatly appreciated.
Thanks,
Bob
user4908334 wrote:
We are in the process of converting an ASP web application running on IIS to a java web application running on OAS. We have java code using a CallableStatement that calls an Oracle PL/SQL Procedure that runs inserts and updates as needed and does not return anything.
More information is needed on that.
There is one proc or 50?
The proc is being called one time or 50 times?
You are not using Batching right?
When the procedure is called from IIS with the exact same parameters that were used from OAS the procedure ALWAYS runs in 3 minutesYou are running the java server on exactly the same box as IIS?
The java code is using exactly the same database as IIS? (Did you verify this?)
Similar Messages
-
Help needed in debugging dynamic SQL.
When I pass the p_deptno =30 and run the below code the refcursor returns the rows.But when I pass the dpetno =null then it goes to the condition if p_job is not null and throws an error.Can any one please help me in debugging this code.
declare
p_deptno number:=null;
p_job varchar2(30):='SALESMAN';
v_sql varchar2(4000);
l_ename varchar2(30);
TYPE my_cursor IS REF CURSOR;
RC my_cursor;
begin
v_sql := 'select ename
from emp
where 1=1';
if p_deptno is not null then
v_sql := v_sql||' AND deptno='||p_deptno;
else
if p_job is not null then
v_sql := v_sql||' AND job='||p_job;
end if;
end if;
OPEN RC FOR v_sql;
LOOP
FETCH RC INTO l_ename;
EXIT WHEN RC%NOTFOUND;
dbms_output.put_line(l_ename);
END LOOP;
CLOSE RC;
END;Thanks.
Edited by: user3565577 on Mar 6, 2010 8:44 PMHi
I've mocked up a simple test and it seems to use the indexes when I try with one or the other values being supplied, I've made an assumption on the indexes you have (i.e. single column indexes on job and deptno),
--indexes on emp table:
p2056@dbapw01> @indexes
Enter value for table_name: emp
Enter value for owner: p2056
INDEX_OWNER INDEX_NAME INDEX_TYPE PAR COLUMN_NAME STATUS
P2056 EMPI1 NORMAL NO DEPTNO VALID
P2056 EMPI2 NORMAL NO JOB VALID
2 rows selected.
--when accessing with a job value
p2056@dbapw01> explain plan for select *
2 from emp
3 where (
4 (null is null and job = 'SALESMAN')
5 OR
6 ('SALESMAN' is null and deptno = null)
7 OR
8 ('SALESMAN' is null and null is null)
9 );
Explained.
p2056@dbapw01> @xplan
PLAN_TABLE_OUTPUT
Plan hash value: 1888885832
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 2 | 154 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 2 | 154 | 1 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | EMPI2 | 2 | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("JOB"='SALESMAN')
--when accessing with a deptno value
p2056@dbapw01> explain plan for select *
2 from emp
3 where (
4 (2 is null and job = null)
5 OR
6 (null is null and deptno = 2)
7 OR
8 (null is null and 2 is null)
9 );
Explained.
p2056@dbapw01> @xplan
PLAN_TABLE_OUTPUT
Plan hash value: 1336173234
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 77 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 77 | 1 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | EMPI1 | 1 | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("DEPTNO"=2) -
Help needed in debugging the BADI: BBP_CREATE_REQ_BACk
Hi,
I need help in debugging a BADI which causing an error ' SE142 please enter quantity in line 3000111'.
This happens only when number items in the cart are more than four and only for Service category items for which we have this BADI, if the items were less than or equal to 4, follow on document is created.
Please let me know what could be the error.
Thank you,
Manyam
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.Any help guys?
Thanks
Manyam -
Help needed in debugging null pointer exception
I am debugging one seeded report in R12. It is erroring out with the following error.
Calling XDO Data Engine...
java.lang.NullPointerException
at
oracle.apps.xdo.oa.util.DataTemplate.getDataTemplate(DataTemplate.java:281)
at oracle.apps.xdo.oa.util.DataTemplate.<init>(DataTemplate.java:133)
at
oracle.apps.xdo.oa.cp.JCP4XDODataEngine.runProgram(JCP4XDODataEngine.java:282)
-> data definition exists but i didn't see anything against 'XML Schema', 'Data Template', 'Preview Data'. Buttons against them are also greyed out.
->I have tried searching XML Publisher Administrator ->Templates. But i didnot find anything.
->XDO_LOBS has record against this report.
-> Data Template(.xml file) exists in the following location $XLA_TOP/patch/115/publisher/defs
Can anybody help me in resolving this issue.
Thanks in Advance,
SriniHi Srini
This forum is for customers - please use the ML I sent you for questions.
Regards
Tim
http://blogs.oracle.com/xmlpublisher -
Help needed to debug Communication Channel using Seeburger modules
Hi ALL
Can you please, help debug the following communication channel using File adapter & seeBurger module.
Adapter Framework caught exception: I/O operation failed : java.lang.ClassNotFoundException: com.sap.engine.messaging.impl.spi.transport.PasswordCredentialImpl -
Loader Info -
ClassLoader name: [sap.com/com.sap.aii.af.app] Living status: alive Direct parent loaders: [system:Frame] [service:servlet_jsp] [service:ejb] [library:com.sap.xi.util.misc] [service:com.sap.aii.adapter.xi.svc] Resources: /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/EJBContainer/applicationjars/com.sap.aii.af.ejb.jar /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/servlet_jsp/AdapterFramework/root/WEB-INF/classes /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/servlet_jsp/AdapterFramework/root/WEB-INF/lib/com.sap.aii.af_api.jar -
Delivering the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.services.rmi_p4.exception.P4BaseRuntimeException: I/O operation failed : java.lang.ClassNotFoundException: com.sap.engine.messaging.impl.spi.transport.PasswordCredentialImpl -
Loader Info -
ClassLoader name: [sap.com/com.sap.aii.af.app] Living status: alive Direct parent loaders: [system:Frame] [service:servlet_jsp] [service:ejb] [library:com.sap.xi.util.misc] [service:com.sap.aii.adapter.xi.svc] Resources: /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/EJBContainer/applicationjars/com.sap.aii.af.ejb.jar /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/servlet_jsp/AdapterFramework/root/WEB-INF/classes /usr/sap/KPX/DVEBMGS00/j2ee/cluster/apps/sap.com/com.sap.aii.af.app/servlet_jsp/AdapterFramework/root/WEB-INF/lib/com.sap.aii.af_api.jar
Your help is greatly appreciated!
Thank you,
PatrickHi Patrick,
It seems that your seeburger instalation was not successfull.
Try installing it again and make all the libraries are there.
Regards,
Luismier
Edited by: Luismier on Aug 26, 2009 10:57 PM
Edited by: Luismier on Aug 26, 2009 11:16 PM -
Help needed - trying to programatically change a report
I want to write a VB program that can open a crystal 2008 report, change the size of 1 field, add a text box, and save the report.
I can open the report, change a field size, and save it, but I don't know how to add an object.
There is no add method for the reportobjects collection.
Any hints / ideas / sample code?
ThanksYou will need to be using CR XI R2 SP2 or later so that you can use inproc RAS to do this.
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportAppServer.ClientDoc;
//CR Declarations
ReportDocument m_boReportDocument;
ISCDReportClientDocument m_boReportClientDocument;
CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject m_boReportObject;
CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject m_boReportObjectModified;
CrystalDecisions.ReportAppServer.ReportDefModel.Section m_boSection;
CrystalDecisions.ReportAppServer.ReportDefModel.TextObject m_boTextObject;
CrystalDecisions.ReportAppServer.ReportDefModel.Paragraphs m_boParagraphs;
CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph m_boParagraph;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphElements m_boParagraphElements;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement m_boParagraphTextElement;
CrystalDecisions.ReportAppServer.ReportDefModel.FontColor m_boFontColor;
CrystalDecisions.ReportAppServer.ReportDefModel.Font m_boFont;
//create a new ReportDocument
m_boReportDocument = new ReportDocument();
//load the RPT file
m_boReportDocument.Load("..
DummyReport.rpt");
//access the ReportClientDocument in the ReportDocument (EROM bridge)
m_boReportClientDocument = m_boReportDocument.ReportClientDocument;
//first determine which area and section to add the text field to - in this case the ReportHeaderArea first's section
m_boSection = m_boReportClientDocument.ReportDefController.ReportDefinition.ReportHeaderArea.Sections[0];
//create the textobject
m_boTextObject = new CrystalDecisions.ReportAppServer.ReportDefModel.TextObject();
//create the paragraph elements for the textobject
m_boParagraphs = new CrystalDecisions.ReportAppServer.ReportDefModel.Paragraphs();
m_boParagraph = new CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph();
m_boParagraphElements = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphElements();
m_boParagraphTextElement = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement();
//set the text value for the text field
m_boParagraphTextElement.Text = "This is the added text field in the reportheader";
m_boParagraphTextElement.Kind = CrystalDecisions.ReportAppServer.ReportDefModel.CrParagraphElementKindEnum.crParagraphElementKindText;
//fix some wierd defaults and behavior by explicitly setting default font
m_boFontColor = new CrystalDecisions.ReportAppServer.ReportDefModel.FontColor();
m_boFont = new CrystalDecisions.ReportAppServer.ReportDefModel.Font();
m_boFont.Bold = true;
m_boFont.Name = "Arial";
m_boFontColor.Font = m_boFont;
m_boParagraphTextElement.FontColor = m_boFontColor;
m_boParagraphElements.Add(m_boParagraphTextElement);
m_boParagraph.ParagraphElements = m_boParagraphElements;
m_boParagraphs.Add(m_boParagraph);
m_boTextObject.Paragraphs = m_boParagraphs;
//now add it to the section
m_boTextObject.Left = 2000;
m_boTextObject.Top = 1;
m_boTextObject.Width = 5000;
m_boTextObject.Height = 226;
m_boReportClientDocument.ReportDefController.ReportObjectController.Add(m_boTextObject, m_boSection, -1);
//display in reportviewer
crystalReportViewer1.ReportSource = m_boReportDocument;
Jason -
HT5621 Help needed for I Cloud change of Apple ID
I have recently changed my mailadress and therefore changed my Apple ID to the new mail adress. But the I Cloud is still associatet with the old mail for the Apple ID and i can not log out and change the old Apple ID to the new. I have tryed to delete the old I cloud account (i have not used it yet) and make a new with the changed Apple ID, but i have to log out/delete with the old Apple ID but it is not valid any more because of the changed mailadress!!
Help please.
Best. Thomas (Denmark)You have to sign out of the old ID, provide the password, then sign back in with the new ID. If your password isn't accepted to sign out of the old ID, go through the steps in this article: If you're asked for the password to your previous Apple ID when signing out of iCloud. The last one (change your ID temporarily) will usually fix things.
-
Issue with Multithreading and vertical scroll bar - help needed to debug!!!
I have been working on a desktop Visual Studio 2010 application for quite a few years. It is written in C++ and MFC. This code is a combination of code I have written and code I inherited. It worked great for years on Windows XP, but when I ported
it to Windows 7, a tricky problem has come up that I am having the darnest time trying to figure out
In summary, it is a single .exe desktop application. There is the main thread (thread A), which launches another thread (thread B). Both threads share a pointer to a single window object which displays events. This window also implements a vertical and horizontal
scroll bar.
The interaction and message processing between the threads seems a little sticky to me. Both threads A and B call the same member function of the CWnd object. BUT, Thread B ALSO posts messages to thread A's queue.
So, in thread B, you will see code like this, which makes a direct call to the output window object, AND THEN it also posts a message to Thread A's mainframe window like this...
if( m_pEventLog )
pOutputWindow->AddLine("Some test...");
if( m_phNotifyWnd[RECEIVE] && m_puiEventWMsg[RECEIVE] ) {
::PostMessage( m_phNotifyWnd[RECEIVE], m_puiEventWMsg[RECEIVE], 0, (LPARAM) pPkt );
WHEN thread A receives the message that thread B posted above, it only does the following:
LRESULT CMainFrame::OnSocketReceive( WPARAM, LPARAM lParam )
CSPkt* pPkt;
CRWPkt* pRWPkt;
CSPktSocket* pSocket;
ULONG ulType;
CString csTemp;
CBSWords bsWords;
CSSSWords sssWords;
CRWPkt* pLoopBackRWMsg; // used if we have to send a loopback msg back to sender
CLMsg lmsg;
m_wndTextWindow.AddLine("Test message");
return 0;
So both threads are writing to the output window via the .AddLine() member function.
void COutputWnd::AddLine( CString& strLine, COLORREF crColor )
UpdateVScroll();
return;
And this function then makes a call to :UpdateVScroll(). The problem seems to arise because thread B does a
post to thread A, where thread A in turn writes to the output window. Eventually, the program
HANGS in the call to
SetScrollInfo() below...
void COutputWnd::UpdateVScroll()
CSingleLock lock( &m_CSVertScrollLock ); // lock things up while we are in here
BOOL bok = lock.Lock();
if (lock.IsLocked() == TRUE)
int iMax = m_FifoIndices.GetHighestIndex();
if( iMax < ( m_iMaxViewableLines - 1 ) )
iMax = 0;
//SetScrollRange( SB_VERT, 0, iMax, FALSE );
//SetScrollRange( SB_VERT, 0, 9, FALSE );
SCROLLINFO scrollinfo;
scrollinfo.cbSize = sizeof(SCROLLINFO);
scrollinfo.fMask = SIF_RANGE;
scrollinfo.nMin=0;
scrollinfo.nMax= iMax;
SetScrollInfo(SB_VERT, &scrollinfo, FALSE);
lock.Unlock();
It doesn't take long for the program to hang...maybe about 10 seconds.
When I hit DEBUG->BREAK ALL, I get the output below in the CALL STACK WINDOW.
ntdll.dll!770070f4()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
user32.dll!76c0cde0()
user32.dll!76c018d9()
>
mfc100d.dll!AfxInternalPumpMessage() Line 153 + 0x13 bytes
C++
mfc100d.dll!CWinThread::PumpMessage() Line 900
C++
mfc100d.dll!CWinThread::Run() Line 629 + 0xd bytes
C++
mfc100d.dll!_AfxThreadEntry(void * pParam=0x0022f6a4) Line 122 + 0x13 bytes
C++
msvcr100d.dll!_callthreadstartex() Line 314 + 0xf bytes
C
msvcr100d.dll!_threadstartex(void * ptd=0x004f97c0) Line 297
C
kernel32.dll!762cee1c()
ntdll.dll!770237eb()
ntdll.dll!770237be()
NOTE: If I never make the call to SetScrollInfo(), the program never HANGS.
Sooo....I am trying to determine if there is a fundamental issue with the way the threads are communicating that is causing the issue, or if maybe I have a memory overwrite. It always hangs in ::SetScrollInfo(), no matter what I comment and uncomment. This
makes me think that scroll bat behavior is different in Windows 7 than on XP, but I have not been able to find any documentation about it.
Can anyone provide any insight as to what may be the cause of the program hanging>It might look like working but it will crash eventually. The windows are thread affine and other thread must never touch other threads windows. Sometimes you might get along but usually it just crashes.
Thread B must use PostMessage ( or SendMessage if suncronous action is require) to thread A's windows to achieve correct updating. Some very basic calls are implemented directly with SendMessage so they are safe to use but then you must individually check
which ones are safe.
Also having multiple SendMessage calls from B to A require rendezvous which might cause other problems ( thread B stalls or program deadlocks, depending on other program structure).
So PostMessage is the way to do it ( or create yourself another inter-thread mechanism, possible but usually too much troble) -
Help needed. I have a 3TB external hard drive partitioned into 1TB's. I used one partition as backup for the main computer hard drive. But now it is greyed out as shown in the disk utility and its name changed, i dont know how that happened, i tried verifying and repairing it but had no luck. I also tried mounting and unmounting it but still no solution. Anyone to help please?
Looks bad. I would strongly advise backing up the stuff on the other two partitions as soon as possible in case the rest of the drive goes wrong.
Beyond that, Disk Utility has limited abilities to repair disks, DiskWarrior uses a different approach and might, emphasis might be more successful. It has certainly done the job for me in the past when Disk Utility could not.
See http://www.alsoft.com/diskwarrior/ -
Help needed in getting real time system performance monitor
Hi,
I need a real time system performance monitor for my solaris.
i am able to graph system usage graph on a daily/weely basis using the ksar grapher.
In the same way i need to capture the system utilisation real time to be viewed on a webpage. Please let me know if there are any free tool/scripts capable of doing it.Hi,
Process Chain Errors
/people/mona.kapur/blog/2008/01/14/process-chain-errors
Common Process chain errors
For Data Load Errors check this blog:
/people/siegfried.szameitat/blog/2005/07/28/data-load-errors--basic-checks
Implementation issues
Lifecycle Implementation
http://help.sap.com/bp_biv170/documentation/SolutionScope_EN.doc
http://help.sap.com/bp_biv235/BI_EN/documentation/BWProjectPlan_EN.mpp
Hope this helps.
Thanks,
JituK -
Hi, I forgot my user password mac 10.9.4 I don't need it to log in but i need it to make changes, etc. It says a password hasn't been set for this account but it still asks for one when i click on the lock icon. can anyone help me? thx!
This is a little confusing since you say you have forgotten your password and then the system says you have not entered a password. Even with an Admin account you must have a password to install software.
If you are using Mac OS X 10.7 or above, you can change the admin password by restarting holding the Command and R keys, from the menu bar select Utilities, then Terminal. When the Terminal window opens, at the cursor type exactly:
resetpassword
and press Enter. When the Reset Password window opens, select the internal hard drive, and then the user account. Type a new password twice, leave the Hint blank, and then Save. Accept the next dialog that opens, and at the bottom of the Reset Password window agree to resetting the home directory permissions.
Quit the Reset Password window, go to the apple left side of the menu bar, Restart.
And you have a new password for your account. -
After downloading IOS 8.0.2 on my iPhone 5, my email messages are not coming through automatically. Before, my email messages would come through automatically and my iPhone would alert me each time an emial message was recevied. I now have to open my mail in-box and wait for my email messages to download. Do I need to reset or change my mail settings? This issue is delaying my abiliy to receive and respond to email messages in a timely manner.
Please Help.
JesseHi Chris. Thanks, for the suggestions re: my email issues. They were helpful and yes I did check all items you referenced. I even contacted Apple support and spent about 40 minutes on phone checking all settings. However, after all these efforts, my mail and calendar issues were not resolved. Apple Support finally recommended deleting the mail account and then reloading it - and it worked! I am now receiving my emails and calendar appts. in real time again.
Just wanted to share this in case anyone elest has a similar problem with mail/calendar after downloaing i.O.S. 8.1 onto iPhone 5.
Thanks, again.
Jesse -
Hi,
I did my suscription two years ago living in Florida. Now I moved to Spain and I need to change my addreess and my credit card to continue with my Adobe Icloud suscription. Any one can help me? Thank youSome Change/Verify Account links https://forums.adobe.com/thread/1465499 that may help
-Credit card https://helpx.adobe.com/x-productkb/policy-pricing/membership-subscription-troubleshooting -creative-cloud.html
-http://helpx.adobe.com/x-productkb/policy-pricing/change-country-associated-with-adobe-id. html -
Hi, I need help!. I will change my iphone and I need to move contacts from one iPhone to the new, what should I do?
You should have been syncing your contact with your computer all along. Just sync them from the computer to the new iphone.
iPhone: Transferring information from your current iPhone to a new iPhone -
Need help with premiere pro cs6 having performance issues please help
need help with premiere pro cs6 having performance issues please help
Welcome to the forum.
First thing that I would do would be to look at this Adobe KB Article to see if it helps.
Next, I would try the tips in this ARTICLE.
If that does not help, a Repair Install would definitely be in order.
Good luck,
Hunt
Maybe you are looking for
-
Nokia N8 Belle Refresh Problem
i have upadated my nokia n8 on 28-aug-2012 after updating to refresh belle my n8 has start freezing it freeze when i use web or browsing to some other apps like OVI after freezing it does not work . the way to get it off is to restart the cell by pr
-
Started 3 days ago. LTE was on, now no LTE,4G,or E is present on my phone. I do have full service. I tried turn on/off airplane mode. Reinserting SIM Card, Reseting Data settings. No luck so far..please help!
-
Configuring XI alert framework to receive the mapping errors
Hi guys, We are trying received in my alert inbox the errors ocurred in the monitoring, but I aren't receiving these message. I've read the Michal's blog, and I do the next steps: - I've defined a new category in the TCODE ALRTCATDEF - I've added my
-
3120 classic offers following BT services
Bluetooth on host PC: Windows Vista BT stack in use. Vista Feature Pack for Wireless installed. Nokia Ovi Suite installed but not used in experimenting addressed in this thread. When paired Nokia 3120 classic offers to Vista host following BT service
-
How can I convert the below two queries in SQL to SSRS expression? 1) DATEADD(MONTH,DATEDIFF(MONTH,0,@DateFrom),0) 2) DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@DateTo)+1,0)) Thank you,