Help needed for creating a bookmark function
Hi there,
I am creating an application which in a kind of way gives the user the possibilty to make the same things as he reads an ebook written in html as if he would read a normal book. He highlights some lines, he makes some bookmarks and he can take some notes. All the changes he makes are saved in a database
I finished the highlighting function and now want to make the bookmark function. What I imagined is sth like the acrobat reader's bookmark manager so I will put it on the left side of a splitpane. The user will be able to add or delete a bookmark in the html ebook with a name of the bookmark and the link and these bookmarks will be saved in the database.
Do you have any suggestions how I can solve this? Which api should I read/use, do you know some examples? How I can make bookbarks in some parts of the pages and not only the whole pages. I mean the the page will load after the press of the bookmark to go to a certain place in that page and not in the begging. In general some ideas how I have to work?
Thanks
It's a swing. I can send you the application if you want but it's 10 classes to post it here.
Similar Messages
-
Help needed for creating 1 invoice for 2 different material types.
Dear, Gurus
I really need help here I have spent 3 days cracking my head trying to solve the problem. Problem is client was creating invoice with reference to order and while invoice was being made it would cause an invoice split. The materials involved are Trading Good and Service Material. They would like only 1 invoice. Note nothing was different except material group and item cat. of the material. payment terms billing dates partners everything is same.
Current item config for Trading Good material is ZMPI-project item cat.
Copying requirements 023 Item ord.ref. w/o AZ Billing quantity A
Data VBRK/VBRP 000 Pos./neg. quantity +
Pricing type K
PricingExchRate type
Price source
Current item config for service Material is TAD-Service
Copying requirements 002 Item/order-related Billing quantity A
Data VBRK/VBRP 001 Inv.split (sample) Pos./neg. quantity +
Pricing type G
PricingExchRate type
Price source
I was told to change Data VBRK/VBRP to 003 One Invoice which I did in both of these item cat. and yes they worked perfectly but at time of creating the invoice for service material the qty that showed was 11. Note: In sales order it is 1 qty. So I went back into the config of item cat TAD and changed copying requirement to 023 instead of 002 but nothing changed. Seems a qty of 10 is referencing something else which I have no idea what or where it is picking this up from. Just to see or test things I went into the sales order and tried changing the service material qty then a weird popup appears and says service order 12344456 has been blocked. (Seriously I have no idea why this would happen or should be existing at all.) Even if for some reason it is being referenced the service order that is existing is qty 1.
I really really do need help and if someone can help me that would be god sent.
Regards, AliYou did not mention what value is maintained in the field billing quantity in the copy control->Item settings. Check for the service item, what value is assigned. Put value A and re-test.
Note that whenever you change any settings in configuration side, you need to create a new documents to test the results of the settings. You should not use the existing documents.
When you say the document is blocked, then check the status of the sales order to find the reason for blocking (like credit block, approval etc)..
Regards, -
Help needed for creating new component in web ui
hi experts,
i need documentation on the component workbench. i need to cretae a new assignment block in web UI, similar ti the items assignemnt block in opportunity screen.
Where can i find material to learn how to develop new components using component workbench?
Thanks,
Shantanu.Hi Shantanu,
In fact, you need to create a context node. You can create this context node using the wizard. Click with right button in "Context node" of the view and follow the steps.
Best regards,
Caíque Escaler -
Help Needed For Creating A Game
Hi, I recently decided to make a MMORPG.A game people will enjoy and have fun, I would of course keep it free sense I have play many games that cost 5-15 dollars a month.I have many creative ideas, but I need someone to show me the ropes and teach me how to use Java and i currently looking for a site to download it at.If anyone would care to teach me how to use this or would like to help me create this game(Medievil type game, Swords armor gold houses dragonslaying and plenty more) post here or send me a pm and we can talk more private.
I need:
*A site to download the best possiable Java console
*Helpful tutorial sites
*Or any other sites or tips you think i should know.
Extra Info On Me:
I dont know if this matters or not probably doesnt but I know how to handle and make a site, ive had some dbz rpgs back in the day(kinda rusty but i can manage).
Some more recent information:
I tried game maker and that doesnt seem to helpful.It would only be helpful if I played them 20 bucks which I am not going to do.
Also i am downloading now JS2E 5.0 for Java.
I am stilling waiting on some type of input or even a mentor.Hi there!
I'm not really a game programmer.. but here's some links anyway.
Someone pointed out this tutorial to me, and I think it is worthwhile:
http://fivedots.coe.psu.ac.th/~ad/jg/
It has stuff on Java 3D, networking, games for mobile phones/PDAs, isometric tile games, etc. It also has an appendix on loaders and Java Web Start.
Also, if you want to create 3D games, you might want to check out
http://www.3dcafe.com/asp/freestuff.asp
They have free 3D models in various formats.
For more 3D links and tutorials try:
http://www.3dlinks.com/
For a 3D tool, I like Anim8or. That it's free helps a lot ;)
http://www.anim8or.com/
And... ms paint!?! You will not be able to draw decent graphics with that. Adobe Photoshop Elements is a nice, low-cost program for 2D images.
There are lots of sites devoted to java game programming. Try the google. Love the google. Google is your friend. ;)
:) jen -
Help needed for creating a SQLLoad control file
I have 2 fields in my flat file
If field1 = field2 load only field1 into tn and aux = NULL
else if field1 != field2 load field1 into tn and field2 = aux
Here is what I have so far - I need help with the "Where"
-- ActiveNumbers.dat
-- Steve J
load data
INFILE 'active.date'
INTO TABLE tmp_ac_active
APPEND
FIELDS TERMINATED BY '|'
(tn CHAR(10), aux CHAR(10))
Thanks in advance
SteveThanks Joel
Using the document you provided here is what I came up with. I notice this is 9i documents - I'm on 8. Does the SQLLoader work the same in both versions?
This is the first time I've used this tool - No one here has even heard of it. (Well except for the DBA)
load data
INFILE 'active.date'
-- Loads tn and aux if they do not match
INTO TABLE tmp_ac_active
WHEN tn != aux
(tn CHARTERMINATED BY WHITESPACE,
aux CHAR TERMINATED BY WHITESPACE)
-- Loads only TN if both are the same
INTO TABLE tmp_ac_active
WHEN tn = aux
(tn POSITION (1:10) CHAR) -
Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with re
Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with reddish cast and loss of detail
System: Windows 7
Adobe CS5
Printer: Epson Stylus Photo 1400
Paper: Inkjet matte presentation paper with slight luster
Installed latest patch for Adobe CS5
Epson driver up to date
After reading solutions online and trying them for my settings for 2 days I am still unable to print what I am seeing on my screen in Adobe CS5. I calibrated my monitor, but am not sure once calibration is saved if I somehow use this setting in Photoshop’s color management.
The files I am printing are photographs of dogs with lots of detail I digitally painted with my Wacom tablet in Photoshop CS5 and then printed with Epson Stylus 1400 on inkjet paper 20lb with slight luster.
My Printed images lose a lot of the detail & come out way to dark with a reddish cast and loss of detail when I used these settings in the printing window:
Color Handling: Photoshop manages color, Color management -ICM, OFF no color adjustment.
When I change to these settings in printer window: Color Handling: Printer manages color. Color management- Color Controls, 1.8 Gamma and choose Epson Standard it prints lighter, but with reddish cast and very little detail and this is the best setting I have used so far.
Based on what I have read on line, I think the issue is mainly to do with what controls are set in the Photoshop Color Settings window and the Epson Printer preferences. I have screen images attached of these windows and would appreciate knowing what you recommend I enter for each choice.
Also I am confused as to what ICM color management system to use with this printer and CS5:
What is the best ICM to use with PS CS5 & the Epson 1400 printer? Should I use the same ICM for both?
Do I embed the ICM I choose into the new files I create?
Do I view all files in the CS5 workspace in this default ICM?
Do I set my monitor setting to the same ICM?
If new file opens in CS5 workspace and it has a different embedded profile than my workspace, do I convert it?
Do I set my printer, Monitor and PS CS5 color settings to the same ICM?
Is using the same ICM for all devices what is called a consistent workflow?
I appreciate any and all advice that can be sent my way on this complicated issue. Thank you in advance for your time and kind help.It may be possible to figure out by watching a Dr.Brown video on the subject of color printing. Adobe tv
I hope this may help............... -
Need to create a validation Function Module
Hi,
I need to create a Validation Function Module.
I have a ITAB into which data comes.
FIELD-SYMBOLS : <ITAB> TYPE ANY ,
key TYPE ANY,
char TYPE ANY.
<ITAB> = local_file.
there is a field KEY whose sum when becomes equal to 10.000 for every CHAR,system should show a popup in the below FM
CALL FUNCTION 'POPUP_WITH_WARNING_ALV'
EXPORTING
TEXTLINE1 = LT_POPUPTEXT
TEXTLINE2 = ' '
TITEL = 'Warnung'
Please let me know if the requirement is not clear.
Thank U very Much.Hi annapurna ,
In your case even the KEY value is the most useful one right,
If so go about this way,
have another field flag set it when the sum of the KEY values exceeds 10.
Loop in an internla table.
Now the internal table will have all the data including the flag and now based on the flag (whether set or not) call the function module popup which should retrieve those matnr field where flag is set.
Display the error message saying that the KEY value fr this matnr exceeds 10.
Revert for further clarification.
Thanks and Regards
Srikanth.P -
help needed for writing query
i have the following tables(with data) as mentioned below
FK*-foregin key (SUBJECTS)
FK**-foregin key (COMBINATION)
1)SUBJECTS(table name)
SUB_ID(NUMBER) SUB_CODE(VARCHAR2) SUB_NAME (VARCHAR2)
2 02 Computer Science
3 03 Physics
4 04 Chemistry
5 05 Mathematics
7 07 Commerce
8 08 Computer Applications
9 09 Biology
2)COMBINATION
COMB_ID(NUMBER) COMB_NAME(VARCHAR2) SUB_ID1(NUMBER(FK*)) SUB_ID2(NUMBER(FK*)) SUB_ID3(NUMBER(FK*)) SUBJ_ID4(NUMBER(FK*))
383 S1 9 4 2 3
384 S2 4 2 5 3
---------I actually designed the ABOVE table also like this
3) a)COMBINATION
COMB_ID(NUMBER) COMB_NAME(VARCHAR2)
383 S1
384 S2
b)COMBINATION_DET
COMBDET_ID(NUMBER) COMB_ID(FK**) SUB_ID(FK*)
1 383 9
2 383 4
3 383 2
4 383 3
5 384 4
6 384 2
7 384 5
8 384 3
Business rule: a combination consists of a maximum of 4 subjects (must contain)
and the user is less relevant to a COMB_NAME(name of combinations) but user need
the subjects contained in combinations
i need the following output
COMB_ID COMB_NAME SUBJECT1 SUBJECT2 SUBJECT3 SUBJECT4
383 S1 Biology Chemistry Computer Science Physics
384 S2 Chemistry Computer Science Mathematics Physics
or even this is enough(what i actually needed)
COMB_ID subjects
383 Biology,Chemistry,Computer Science,Physics
384 Chemistry,Computer Science,Mathematics,Physics
you can use any of the COMBINATION table(either (2) or (3))
and i want to know
1)which design is good in this case
(i think SUB_ID1,SUB_ID2,SUB_ID3,SUB_ID4 is not a
good method to link with same table but if 4 subjects only(and must) comes
detail table is not neccessary )
now i am achieving the result by program-coding in C# after getting the rows from oracle
i am using oracle 9i (also ODP.NET)
i want to know how can i get the result in the stored procedure itsef.
2)how it could be designed in any other way.
any help/suggestion is welcome
thanks for your time --PradeeshWell I forgot the table-alias, here now with:
SELECT C.COMB_ID
, C.COMB_NAME
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID1) AS SUBJECT_NAME1
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID2) AS SUBJECT_NAME2
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID3) AS SUBJECT_NAME3
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID4) AS SUBJECT_NAME4
FROM COMBINATION C;
As you need exactly 4 subjects, the columns-solution is just fine I would say. -
File missing (file\BCD error code 0Xc0000034 help need for work!
file missing (file\BCD error code 0Xc0000034 help need for work! what can i do?
have an p 2000 notebook pcHi bobkunkle, welcome to the HP Forums. I understand you cannot boot passed the error you are receiving.
What is the model or product number of your notebook? What version of Windows is installed?
Guide to finding your product number
Which Windows operating system am I running?
TwoPointOh
I work on behalf of HP
Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping! -
Help need for force to signout All session ! how...
hi
help need for force to signout All session ! how ??
Solved!
Go to Solution.Hi and welcome to the Skype Community,
To force a signout of all instances your Skype is signed into please change your password: https://support.skype.com/en/faq/FA95/how-do-i-change-my-password
Follow the latest Skype Community News
↓ Did my reply answer your question? Accept it as a solution to help others, Thanks. ↓ -
Argent Help Needed for VL01N(create delivery) and IW51(Create Notification)
Hello All
Requirement :
when create a delivery using VL01N, at the same time, 'Notification creation'(IW51) will automatically being create.
in short, when i'm creating a delivery and save it at same time 'Notification Creation' will autometically genetare.
So, i think, change in SAP Standard Program..
So how to do that or is there any way to do it??
Thanks All
Kaushik
Edited by: The Kaushik on Aug 31, 2011 1:13 PMHello Anjaneya,
Business requirement is that, we dont want to create notification separately because of our business sense.
i have also find out the solution .
BAPI_ALM_NOTIF_CREATE is the function module, for create notification in background.
but now question is that,
where to put this code in transaction VL01N or SAP Standard Program SAPMV50A.
My Program is like,
DATA: I_BAPI2080_NOTHDRI TYPE STANDARD TABLE OF BAPI2080_NOTHDRI WITH
HEADER LINE.
DATA: I_BAPIRET2 TYPE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE.
DATA: I_BAPI2080_NOTHDRE TYPE STANDARD TABLE OF BAPI2080_NOTHDRE WITH
HEADER LINE.
DATA: I_BAPI2080_NOTFULLTXTI TYPE STANDARD TABLE OF BAPI2080_NOTFULLTXTI
WITH HEADER LINE.
I_BAPI2080_NOTHDRI-SERIALNO = 'XXXXXX5885'. u201Cu can find this is vl01n
I_BAPI2080_NOTHDRI-MATERIAL = 'XXXXXXXX20111'. u201Cu can find this is vl01n
CALL FUNCTION 'BAPI_ALM_NOTIF_CREATE'
EXPORTING
EXTERNAL_NUMBER =
NOTIF_TYPE = 'S0'
NOTIFHEADER = I_BAPI2080_NOTHDRI
TASK_DETERMINATION = ' '
SENDER =
ORDERID =
IMPORTING
NOTIFHEADER_EXPORT = I_BAPI2080_NOTHDRE
TABLES
NOTITEM =
NOTIFCAUS =
NOTIFACTV =
NOTIFTASK =
NOTIFPARTNR =
LONGTEXTS = I_BAPI2080_NOTFULLTXTI
KEY_RELATIONSHIPS =
RETURN = I_BAPIRET2.
CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'
EXPORTING
NUMBER = I_BAPI2080_NOTHDRE-NOTIF_NO
IMPORTING
NOTIFHEADER =
TABLES
RETURN =
u can not geting output here......but if u can run tcode : IW53, U can see that, notification will be created.
Thanks
Kaushik -
Help needed for file processing using FTP
Hi All,
I am new to ODI tool and currently we are implementing one project in ODI. Could you please, any one help me on the following requirement... how to implement it?
Scenario:
i) I need to pick a file from remote host 'outbox' dir using FTP process, and place into local 'temp' dir. (I can do it with odiFTPGet tool)
ii) Change the file as per target business requirement.??? ( this step challenging me)
for ex:
if source file name : <project name>_<source ID>_<transaction name>_<unique id>.txt
target name should be : 1234_<transaction name>_<sysdate in yyyyMMddhhmmss>_<unique id>_2345.txt ( here 1234 and 2345 are hard coded values)
iii) Later move to local 'temp' to local 'outbox' dir. ( I can do it with odiFileMove tool)
iv) After successful process move the file from remote 'outbox' to remote 'archive' dir ??? (again this is challenging me).
For this my questions are:
1) How to get file name into a variable ( In one of the post , it says we need to create data model and data stores, and interface to get the file names into a file. apart from is there any easy way i can implement it in package it self?)
2) How to tokenize a long string ( i.e., need to tokenize the source file to get <unique id> and <transaction name> and map to target file name)
3) How to define implementation for Java in user function?? do we need to use class declarations and import statements?? I need a sample user function in Java.
4) How to move/rename a file in remote server?? ( need to move file from remote 'outbox' server to remote archive' dir)
5) If any step in package fails, How to get the error msg into a variable which i can use for sending mail and raise a ticket in remedy?? ( I will pass that variable to as content to mail and remedy ticket)
6) How to handle list type data (string list) by variables in ODI?? (As we can define single variable not as list.)
I am sorry to ask all my queries I a single post. But I need to solutions for all to implement this in my project.
Thanks in advance. Appreciate early response.
Regards,
Kiran.NCan any one share your thoughts for my request.
Thanks in advance.
Regards,
Kiran -
Help needed for report on tables vbak and vbap
Hello,
I needed help in one of my work issues, this is my first project and Iam still learning. kindly help.
I was asked to take erdat,vbeln,posnr from selection screen and compare it with the data already in tables vbap,vbak. If the data
already exists and exception needs to be raised saying that the 'data exists',but if the data is not present in the tables the
tables have to be updated. This has to be done using function module only.
Then I have to write a REPORT calling the above function module and finally displaying the number of records updated and the
list of them.
I have started writing a function module:
FUNCTION z_tableupdate.
""Local Interface:
*" IMPORTING
*" VALUE(DATE) LIKE VBAK-ERDAT DEFAULT SY-DATUM
*" VALUE(SALESORDERNO) LIKE VBAK-VBELN
*" VALUE(ITEMNO) LIKE VBAP-POSNR
*" EXPORTING
*" VALUE(EX_VBAP) LIKE VBAP STRUCTURE VBAP
*" VALUE(SYS) LIKE SY-SYSID
*" VALUE(EX_VBAK) LIKE VBAK STRUCTURE VBAK
*" EXCEPTIONS
*" DATA_UPDATED
*" DATA_EXISTS
SELECT * FROM vbak INTO vbak_wa WHERE erdat = date
AND vbeln = salesorderno.
ENDSELECT.
SELECT * FROM vbap INTO vbap_wa WHERE posnr = itemno.
ENDSELECT.
IF sy-subrc EQ 0.
ex_vbap = vbap_wa.
ex_vbak = vbak_wa.
ELSE.
RAISE data_exists.
ENDIF.
sys = sy-sysid.
ENDFUNCTION.
How is the above code for function module, will this work??
Now can I write a report to call the above function module and update the record?? if so, how to update ??? please help...Lots of thanks in advance.Hi
Welcome to SDN forum
Whay can't you write a simple report in SE38.
why you are using Fun module
Nothing wrong in it.
But first become perfetc in reports in SE38 and then do using the fun modules
write a simple select statement like
SELECT AVBELN AERDAT BPOSNR BMATNR
INTO TABLE ITAB
FROM VBAK AS A JOIN VBAP ON
AVBELN = BVBELN
WHERE A~VBELN IN S_VBELN AND
A~ERDAT IN S_ERDAT AND
B~POSNR IN S_POSNR.
IF SY-SUBRC <> O.
WRITE: / 'No data found'.
ENDIF.
First write this in SE38 by defining a proper selection screen and internal tables
then do as fun module
see the doc for fun module
Function Modules;
Check this matter.
Function Modules are Global ABAP programs created by SAP for reusable purpose.they have IMPORT,EXPORT and TABLE parameters, and EXCEPTIONS to through when error occurs.
You can create them from TCode SE37.
Go through the following doc:
Function modules are cross-program, reusable procedures that are organized into function groups, and whose functions are implemented between the statements FUNCTION and ENDFUNCTION. Function modules and their interfaces are created in the Function Builder.
Function Module Interfaces
The parameter interface of a function module is defined in the Function Builder. It includes the definition of interface parameters and the specification of exceptions that can be triggered by a function module. The Function Builder automatically generates comment lines below the FUNCTION statement in the source code of the function module, which represent the interface of the function module with the following syntax:
Syntax
... [IMPORTING parameters]
[EXPORTING parameters]
[CHANGING parameters]
[TABLES table_parameters]
[{RAISING|EXCEPTIONS} exc1 exc2 ...]
The syntax and semantics of IMPORTING, EXPORTING, CHANGING, RAISING, and EXCEPTIONS mainly correspond to the definition of method interfaces with [CLASS-]METHODS. The additional option of defining table parameters using TABLES is obsolete.
Interface parameters
The interface parameters are defined on the relevant tab pages in the Function Builder.
IMPORTING parameters are input parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input parameter. The content of the actual parameter is passed to the input parameter when the call is made. The content of an input parameter for which 'pass by reference' is defined cannot be changed in the function module.
EXPORTING parameters are output parameters. When the function module is called, a suitable actual parameter can be specified for every output parameter. The content of an output parameter that is defined for 'pass by value' is transferred to the actual parameter if the function module is completed without errors. An output parameter that is defined for pass by reference is not initialized when the function module is called.
CHANGING parameters are input and output parameters. When the function module is called, a suitable actual parameter must be specified for every non-optional input or output parameter. When the function module is called, the content of the actual parameter is passed to the input/output parameter, and when the function module is completed, the content of the input/output parameter is passed to the actual parameter.
TABLES parameters are table parameters. Table parameters are obsolete CHANGING parameters that are typed as standard tables with a header line. If an internal table without a header line or a table body is passed as an actual parameter to a formal parameter of this type, an empty local header line is generated in the function module. If an internal table with a header line is used as an actual parameter, both the table body and the header line are passed to the function module. Pass by value is not possible in formal parameters defined using TABLES. Formal parameters defined with TABLES can be replaced by formal parameters defined with CHANGING. A local work area can be created for the internal table in the function module by using the addition LIKE LINE OF itab of the DATA statement.
Exceptions
The exception of a function module are defined on the Exceptions tab page in the Function Builder. Here you can select exception classes to define whether class-based exceptions are declared or non-class-based exception are defined. Class-based exceptions are represented in the above syntax by RAISING, and non-class-based exceptions are represented by EXCEPTIONS.
The addition RAISING is used to declare class-based exceptions that can be propagated from the function module to the caller. Exceptions in the categories CX_STATIC_CHECK and CX_DYNAMIC_CHECK must be explicitly declared, otherwise a propagation can lead to an interface violation. A violation of the interface leads to the treatable exception CX_SY_NO_HANDLER. Exceptions of the category CX_NO_CHECK are implicitly always declared. The declaration of exceptions of the category CX_STATIC_CHECK is statically checked in the syntax check. For exceptions of the category CX_DYNAMIC_CHECK, the check is not performed until runtime. In a function module in which class-based exceptions are declared with the RAISING addition, the statement CATCH SYSTEM-EXCEPTIONS cannot be used. Instead, the relevant treatable exceptions should be handled in a TRY control structure.
The addition EXCEPTIONS is used to define a list of non-class-based exceptions that can be triggered in the function module using the statements RAISE or MESSAGE RAISING. Exceptions defined in this way - as with formal parameters - are bound to the function module and cannot be propagated. If an exception of this type is triggered in a function module, and no return value has been assigned to it with the homonymous addition EXCEPTIONS of the CALL FUNCTION statement when the call was made, this leads to a runtime error.
Note
For new developments after release 6.10, SAP recommends that you work with class-based exceptions that are independent of the function module.
RFC is a technology which is used to access a functions (Modules) from
the remote systems.
If a function module is set as remote enabled which can be access from
the remote system via RFC.Eg: U can access the Remote enabled function modules in ur VB,Webdynpro,Java,Visual composer program.
A function module can be set as remote enabled by SE37->Go to ur FM->click the option Button "remote enabled".
But Normal function modules can not accessd from the remote system.
Good Example for RFC enabled function module is : BAPI(Business Application Programming Interface)
Note: All BAPIs are Remote enabled but not all remote enabled function modules are BAPI.
CALLING A FUNCTION MODULE:
1)In U ABAP Editor --> Click "Patter" ---> Selection Option Button "Call Function"
--> Write the Corresponding FM name --> Hit Enter
2)The appropriate import ,export Parameters will be displayed in ur editor
3)Pass the Values Here.
Also check these links.
http://www.geocities.com/victorav15/sapr3/abapfun.html
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
Check this link:
http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db988735c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/d94b78ebf811d295b100a0c94260a5/frameset.htm
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
See the following links:
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_erp2005vp/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/26/64f623fa8911d386e70000e82011b8/content.htm
Regards
Anji -
Help need for PL/SQL collections
Hi All,
Please help me to solve the following Error.
Error # ORA-06533: Subscript beyond count.
I am using Oracle 10g.
I have data in the Test_table
id_col stat_col reason_col
101 A HPQ
101 A NULL
101 NULL EDU
101 P NULL
102 P NULL
102 NULL HEN
103 R NULL
103 Q NULL
Ny requirement is like:
id_col stat_col_ reason_col
101 A|P HPQ|EDU
102 P HEN
103 R|Q NULL
step1- Type tab_type as table of varchar2(32767);
step2 - I have written a function which returns the pl/sql table type
create or replace function fn_get_val(id in VARCHAR2)
return tab_type
cursor my_cur is
select id_col,stat_col,reason_col
from test_table WHERE ID_COL = ID;
lv_status VARCHAR2(100);
LV_reason varchar2(200);
lv_sep CHAR(1);
lv_disp_stat varchar2(200);
lv_disp_reason varchar2(200);
LN_STR NUMBER;
BEGIN
lv_tab_data:= tab_type();
lv_tab_data.extend;
open my_cur;
loop
fetch my_cur into lv_status,lv_reason;
exit when my_cur%notfound;
--dbms_output.put_line('my_curr.rowcount'|| my_curr.rowcount);
lv_disp_stat:= lv_disp_stat||lv_sep||lv_status;
lv_disp_reason:= lv_disp_reason||lv_sep||lv_reason;
lv_sep:= '|';
end loop;
-- To remove first occurance of (|) pipeline in the string.
LN_STR := INSTR(lv_str1,'|',1,1);
IF LN_STR = 1 THEN
lv_disp_stat := SUBSTR(lv_disp_stat ,2 );
END IF;
LN_STR := INSTR(lv_str2,'|',1,1);
IF LN_STR = 1 THEN
lv_disp_reason := SUBSTR(lv_disp_reason ,2 );
END IF;
lv_tab_data(1) := lv_disp_stat;
lv_tab_data.extend;
lv_tab_data(2) := lv_disp_reason;
return lv_tab_data;
EXCEPTION
DBMS_OUTPUT.PUT_LINE('Error in function fn_get_val # '||SQLERRM||' - '||dbms_utility.format_error_backtrace);
END fn_get_val;
STEP-3
I have created one procedure where the above function is called
CREATE OR REPLACE PROCEDURE my_proc (p_emp_id in Varchar2)
AS
lv_tab_ty tab_type;
CURSOR DET_CUR IS
SELECT EMP_ID_C,NAME_C,LOCATION
FROM DETAILS_TABLE
WHERE EMP_ID_C = p_emp_id;
type det_tab_ty is table of det_cur%type index by pls_integer;
lv_det_rec det_tab_ty;
BEGIN
lv_tab_ty := fn_get_val(p_emp_id);
dbms_output.put_line('lv_tab_ty.count is : '||lv_tab_ty.count);
OPEN DET_CUR;
LOOP
FETCH DET_CUR BULK COLLECT INTO lv_det_rec;
EXIT WHEN DET_CUR%NOTFOUND;
END LOOP;
CLOSE DET_CUR;
IF lv_det_rec.COUNT > 0 THEN
FOR i IN lv_det_rec.FIRST .. lv_det_rec.LAST
LOOP
INSERT INTO other_tab (emp_id_c,name_c,Loc_c,status_c,reason_c) values(lv_det_rec(i).emp_id_c,lv_det_rec(i).NAME_C,lv_det_rec(i).LOCATION,lv_tab_ty(1),lv_tab_ty(2) );
END LOOP;
END IF;
COMMIT;
EXCEPTIONS
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error in procedure my_proc # '||SQLERRM||' - '||dbms_utility.format_error_backtrace);
END my_proc ;
After exucting the above procedure i am getting the following error.
lv_tab_ty.count is : 1
Error # ORA-06533: Subscript beyond count.
This error is occured when my_curr.rowcount is equal to 0 (cursor defined in the function fn_get_val() ).
The function fn_get_val() does return null to the pl/sql table variable (lv_tab_ty).
AND another schenario:
If
lv_tab_data.count = 1
Then how can i handle this situation in the above procedure,because i need both
lv_tab_data(1)
and lv_tab_data(2)
to insert to the OTHER_TABLE in the procedure.
Please help me to solve this issue.
Thanks in Advance!!!
PKMYou can do it with one query with Tom Kyte's stragg function:
http://asktom.oracle.com/pls/asktom/f?p=100:11:3431223221768118::::P11_QUESTION_ID:15637744429336
with test_table(id_col,stat_col,reason_col) as (
select 101,'A','PQ' from dual union all
select 101,'A',NULL from dual union all
select 101,NULL,'EDU' from dual union all
select 101,'P',NULL from dual union all
select 102,'P',NULL from dual union all
select 102,NULL,'HEN' from dual union all
select 103,'R',NULL from dual union all
select 103,'Q',NULL from dual
select id_col,replace(stragg(stat_col),',','|'),replace(stragg(reason_col),',','|')
from test_table tt
group by id_colRegards,
Sayan M. -
Help needed with creating Flash game
Hello,
I need to create Flash educational/quiz game for one of my clients. It would be based on concept like these ones for example:
Example 1
http://go.ucsusa.org/game/
Example 2
http://www.zdravlje.hr/igre/stop-aids/
Note: when you open this link you will see two text boxs which you first must fill. On the left side text box "Upišite ime" means "Type your name" and right one "Upišite godinu svog rođenja" means "Year of birth"
What is interesting about this type of games is that they are classic games (for example game Labirint where you have to find way out), but during play pop-up questions starts to appear to test end user knowledge abot certain topic (in example 2 topic is about AIDS/HIV). In case of my client, topic is about Eco environment.
Here is where my trouble starts;) : I found many useful free tutorials how to create simple flash game (most interesting example I found is this one http://www.strille.net/tutorials/snake/index.php) BUT I dont know how make that system of popup questions appear during game similar to Example 1 and Example 2?
Any help is appreciated and thanks in advance for promt reply.
Greetings,
AdnanUpdate: I have just read all instructions in Snake tutorial which helped be better realize how Snake game works.
a) This is what I plan to realize for my client:
1. Snake game which end users will play and during play pop-up/quiz quesions will appear on topic Eco environment;
2. For example when end user earns 50 points he must answer some of the random questions like "Q:How many ton of waste are produced by US livestock each year" with three answers A1: "1 milion" A2: "1 bilion" A3: "2 bilion" and after user scores 100 points then another question pops up and so on. This is all true if all answers are correct but in case he answer some question wrong than game can start from begining or another solution could be he looses -50 or -100 points.
3. At the end, user which gains most points wins.
b) This is what I have done till now:
I have this file http://www.strille.net/tutorials/snake/snakeGameWithHighscore.zip which I partly understand how it works with my Flash knowladge.
All functions and main game engine is in layer code:
"// Snake Game by Strille, 2004, www.strille.net
blockSize = 8; // the block width/height in number of pixels
gameHeight = 30; // the game height in number of blocks
gameWidth = 45; // the game width in number of blocks
replaySpeed = 1;
SNAKE_BLOCK = 1; // holds the number used to mark snake blocks in the map
xVelocity = [-1, 0, 1, 0]; // x velocity when moving left, up, right, down
yVelocity = [0, -1, 0, 1]; // y velocity when moving left, up, right, down
keyListener = new Object(); // key listener
keyListener.onKeyDown = function() {
var keyCode = Key.getCode(); // get key code
if (keyCode > 36 && keyCode < 41) { // arrow keys pressed (37 = left, 38 = up, 39 = right, 40 = down)...
if (playRec) {
if (keyCode == 37 && replaySpeed > 1) {
replaySpeed--;
} else if (keyCode == 39 && replaySpeed < 10) {
replaySpeed++;
} else if (game.onEnterFrame != undefined) { // only allow moves if the game is running, and is not paused
if (keyCode-37 != turnQueue[0]) { // ...and it's different from the last key pressed
turnQueue.unshift(keyCode-37); // save the key (or rather direction) in the turnQueue
} else if (keyCode == 32) { // start the game if it's not started (32 = SPACE)
if (!gameRunning || playRec) {
startGame(false);
} else if (keyCode == 80) { // pause/unpause (80 = 'P')
if (gameRunning && !playRec) {
if (game.onEnterFrame) { // pause
delete game.onEnterFrame; // remove main loop
textMC.gotoAndStop("paused");
} else { // exit pause mode
game.onEnterFrame = main; // start main loop
textMC.gotoAndStop("hide");
Key.addListener(keyListener);
function startGame(pRec) {
x = int(gameWidth/2); // x start position in the middle
y = gameHeight-2; // y start position near the bottom
map = new Array(); // create an array to store food and snake
for (var n=0;n<gameWidth;n++) { // make map a 2 dimensional array
map[n] = new Array();
turnQueue = new Array(); // a queue to store key presses (so that x number of key presses during one frame are spread over x number of frames)
game.createEmptyMovieClip("food", 1); // create MC to store the food
game.createEmptyMovieClip("s", 2); // create MC to store the snake
scoreTextField.text = "Score: 0"; // type out score info
foodCounter = 0; // keeps track of the number of food movie clips
snakeBlockCounter = 0; // keeps track of the snake blocks, increased on every frame
currentDirection = 1; // holds the direction of movement (0 = left, 1 = up, 2 = right, 3 = down)
snakeEraseCounter = -1; // increased on every frame, erases the snake tail (setting this to -3 will result in a 3 block long snake at the beginning)
score = 0; // keeps track of the score
ticks = lastRec = 0;
recPos = recFoodPos = 0;
playRec = pRec;
if (!playRec) {
textMC.gotoAndStop("hide"); // make sure no text is visible (like "game over ")
highscores.enterHighscoreMC._visible = false;
statusTextField.text = "";
recTurn = "";
recFrame = "";
recFood = "";
game.onEnterFrame = main; // start the main loop
} else {
if (loadedRecordingNumber != -1) {
var n = getLoadedRecordingNumberHighscorePos(loadedRecordingNumber);
statusTextField.text = "Viewing " + highscores[n].name.text + "'s game (score " + highscores[n].score.text + ")";
} else {
statusTextField.text = "Viewing your game";
game.onEnterFrame = replayMain; // start the main loop
placeFood("new"); // place a new food block
gameRunning = true; // flag telling if the game is running. If true it does not necessarily mean that main is called (the game could be paused)
function main() { // called on every frame if the game is running and it's not paused
if (playRec) {
if (ticks == lastRec+parseInt(recFrame.charAt(recPos*2)+recFrame.charAt(recPos*2+1), 36)) {
currentDirection = parseInt(recTurn.charAt(recPos));
lastRec = ticks;
recPos++;
} else if (turnQueue.length) { // if we have a turn to perform...
var dir = turnQueue.pop(); // ...pick the next turn in the queue...
if (dir % 2 != currentDirection % 2) { // not a 180 degree turn (annoying to be able to turn into the snake with one key press)
currentDirection = dir; // change current direction to the new value
recTurn += dir;
var fn = ticks-lastRec;
if (fn < 36) {
recFrame += " "+new Number(fn).toString(36);
} else {
recFrame += new Number(fn).toString(36);
lastRec = ticks;
x += xVelocity[currentDirection]; // move the snake position in x
y += yVelocity[currentDirection]; // move the snake position in y
if (map[x][y] != SNAKE_BLOCK && x > -1 && x < gameWidth && y > -1 && y < gameHeight) { // make sure we are not hitting the snake or leaving the game area
game.s.attachMovie("snakeMC", snakeBlockCounter, snakeBlockCounter, {_x: x*blockSize, _y: y*blockSize}); // attach a snake block movie clip
snakeBlockCounter++; // increase the snake counter
if (map[x][y]) { // if it's a not a vacant block then there is a food block on the position
score += 10; // add points to score
scoreTextField.text = "Score: " + score; // type out score info
snakeEraseCounter -= 5; // make the snake not remove the tail for five loops
placeFood(map[x][y]); // place the food movie clip which is referenced in the map map[x][y]
map[x][y] = SNAKE_BLOCK; // set current position to occupied
var tailMC = game.s[snakeEraseCounter]; // get "last" MC according to snakeEraseCounter (may not exist)
if (tailMC) { // if the snake block exists
delete map[tailMC._x/blockSize][tailMC._y/blockSize]; // delete the value in the array m
tailMC.removeMovieClip(); // delete the MC
snakeEraseCounter++; // increase erase snake counter
} else { // GAME OVER if it is on a snake block or outside of the map
if (playRec) {
startGame(true);
} else {
gameOver();
return;
ticks++;
function replayMain() {
for (var n=0;n<replaySpeed;n++) {
main();
function gameOver() {
textMC.gotoAndStop("gameOver"); // show "game over" text
delete game.onEnterFrame; // quit looping main function
gameRunning = false; // the game is no longer running
enterHighscore();
function placeFood(foodMC) {
if (playRec) {
var xFood = parseInt(recFood.charAt(recFoodPos*3)+recFood.charAt(recFoodPos*3+1), 36);
var yFood = parseInt(recFood.charAt(recFoodPos*3+2), 36);
recFoodPos++;
} else {
do {
var xFood = random(gameWidth);
var yFood = random(gameHeight);
} while (map[xFood][yFood]); // keep picking a spot until it's a vacant spot (we don't want to place the food on a position occupied by the snake)
if (xFood < 36) {
recFood += " "+new Number(xFood).toString(36);
} else {
recFood += new Number(xFood).toString(36);
recFood += new Number(yFood).toString(36);
if (foodMC == "new") { // create a new food movie clip
foodMC = game.food.attachMovie("foodMC", foodCounter, foodCounter);
foodCounter++;
foodMC._x = xFood*blockSize; // place the food
foodMC._y = yFood*blockSize; // place the food
map[xFood][yFood] = foodMC; // save a reference to this food movie clip in the map
//- Highscore functions
loadHighscores();
enterHighscoreKeyListener = new Object();
enterHighscoreKeyListener.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
playerName = highscores.enterHighscoreMC.nameTextField.text;
if (playerName == undefined || playerName == "") {
playerName = "no name";
saveHighscore();
Key.removeListener(enterHighscoreKeyListener);
Key.addListener(keyListener);
highscores.enterHighscoreMC._visible = false;
loadedRecordingNumber = -1;
startGame(true);
function enterHighscore() {
if (score >= lowestHighscore) {
highscores.enterHighscoreMC._visible = true;
highscores.enterHighscoreMC.focus();
Key.removeListener(keyListener);
Key.addListener(enterHighscoreKeyListener);
} else {
loadedRecordingNumber = -1;
startGame(true);
function getLoadedRecordingNumberHighscorePos(num) {
for (var n=0;n<10;n++) {
if (num == highscores[n].recFile) {
return n;
function loadHighscores() {
vars = new LoadVars();
vars.onLoad = function(success) {
for (var n=0;n<10;n++) {
var mc = highscores.attachMovie("highscoreLine", n, n);
mc._x = 5;
mc._y = 5+n*12;
mc.place.text = (n+1) + ".";
mc.name.text = this["name"+n];
mc.score.text = this["score"+n];
mc.recFile = parseInt(this["recFile"+n]);
lowestHighscore = parseInt(this.score9);
if (!gameRunning) {
loadRecording(random(10));
delete this;
if (this._url.indexOf("http") != -1) {
vars.load("highscores.txt?" + new Date().getTime());
} else {
vars.load("highscores.txt");
function loadRecording(num) {
vars = new LoadVars();
vars.onLoad = function(success) {
if (success && this.recTurn.length) {
recTurn = this.recTurn;
recFrame = this.recFrame;
recFood = this.recFood;
startGame(true);
} else {
loadRecording((num+1)%10);
return;
delete this;
loadedRecordingNumber = num;
if (this._url.indexOf("http") != -1) {
vars.load("rec"+loadedRecordingNumber+".txt?" + new Date().getTime());
} else {
vars.load("rec"+loadedRecordingNumber+".txt");
function saveHighscore() {
sendVars = new LoadVars();
for (var n in _root) {
if (_root[n] != sendVars) {
sendVars[n] = _root[n];
returnVars = new LoadVars();
returnVars.onLoad = function() {
if (this.status == "ok") {
loadHighscoresInterval = setInterval(function() {
loadHighscores();
clearInterval(loadHighscoresInterval);
}, 1000);
delete sendVars;
delete this;
sendVars.sendAndLoad("enterHighscore.php", returnVars, "POST");
function startClicked() {
if (!gameRunning || playRec) {
if (highscores.enterHighscoreMC._visible) {
Key.removeListener(enterHighscoreKeyListener);
Key.addListener(keyListener);
highscores.enterHighscoreMC._visible = false;
startGame(false);
function viewGame(lineMC) {
loadRecording(lineMC.recFile);
statusTextField.text = "Loading " + lineMC.name.text + "'s game...";
Now what is left to do is somehow to iclude educational quiz in this game/code. First idea that came to me is same thing Ned suggested: to create some unique movie clip which would contain all data/questions lined up but main problem for me is how to "trigger" that movie clip to play only AFTER end user clicks on "Start game" or SPACE to restart? Not sure how to solve this issue?
Maybe you are looking for
-
Minecraft server not working on Mountain Lion
Hey guys, I used to host a Minecraft server on my macbook running OSX Lion and it would work perfectly but as soon as I upgraded to Mountain Lion people cannot connect to my server. I've tried pretty much every setting but for some reason people cann
-
Quicktime 7.0.1 Reinstaller won't run, gives error message.
Anyone else having trouble running the QuickTime 7.0.1 Reinstaller for 7.0.4? www.apple.com/support/downloads/quicktime701reinstallerforquicktime704.html It worked fine on a G4 PowerBook, but when I try to run it on an Intel iMac, I get this error: "
-
Connecting CF to OpenOffice (convert html to doc)
I have a simple problem that appears to have a difficult solution. I need to convert an HTML file to a DOC file (an actual word document, not just the extension) In the past I would use cfobject to connect to Word, open the file and then save it as a
-
Hi experts, I'm having the following problem: I created an Interactive Form in WDA. The default language is 'enUS'. I want to translate the form to other languages, so I selected 'goto'-->'translation' and selected nlNL (dutch) as target language. Af
-
Changing panels on a frame depending on what the user clicks
I'm making a small application with a JFrame and some JPanels. When the application starts a start panel is added to the frame where the user can press two buttons. If he presses a button, then a new panel must be painted on the frame. In the new pan