Use of SAPCRYPTOLIB in code ABAP.
Hi,
I found many documentation about this library. I installed it, but now I don´t know how I must use it in my code Abap. I finally need encrypt and sign a file.
I have my digital sign and public Key given by Citibank, but how I must use them?
Help me, wich are the steps that I must follow?
Thanks for your help.
Maria C
PL check this <a href="https://forums.sdn.sap.com/click.jspa?searchID=2139685&messageID=2608811">Thread</a>.
~Suresh
Similar Messages
-
How to know where the user exits or enhancement used in standard sap code?
Hi
I m pretty new to abap.
How can I know where the user exits or enhancement used in standard sap code?
As i have to add some functionality to the standard sap code. I m looking to search the enhancement or user exits used in this standard code wher i can add my functionality.
thanks in advance.
Moderator message : Search for available information, thread locked.
Edited by: Vinod Kumar on Oct 19, 2011 2:38 PMHi Henry,
I don't think this is the easiest way to look at the code around a particular field on the screen. Debugging standard programs also can be very tedious, if not impossbile. So, instead of this question, I would like to find out exactly what you want to do if you know the code.
If you are in a transaction and you want to know where the code of a particular field is, the fastest way to get to it is by pressing the F1 key on the field and then press the Technical info button on the help screen. In here you will typically see the same kind of information but it is very specific to the field you selected.
PROGRAM(SCREEN) tells you which program is manipulating the main screen, in which your field is embedded. Remember your field may be included in a sub-screen and that subscreen may be the one included in the main screen.
PROGRAM(SUB SCREEN) tells you which program is directly responsible for the field on the subscreen it is included in. This is where you should find the code most appropriate for the field, but not necessarily.
PROGRAM(GUI) controls how your push buttons and the menu options in the screen behave and controlled.
Srinivas -
Using a function module in ABAP Query
Hi All,
I want to use a function module in ABAp query in the Record Processing Section.
In the report program we click on Pattern button to inser the function module so that all the Importing and exporting parameter automatically appears.
Similarly is there any particular method of inserting a function module in ABAp Query.
Regards
Manipal ParkalaWhen you are doing the infoset for the query (SQ02) you can add coding by clicking the coding tab. You can chose in wich event you want your coding and there is Pattern Button for you to easy use.
If you don't want to put the code in the infoset just in the query then is not posible.
Nevertheless, I higly descourage the use of coding in queryies. If you need to insert some coding make an ALV its easier, clearer and much easier to mantain.
Hope it helps. -
Use Of "#EC CI_EXECSQL in ABAP with EXEC SQL. Statement giving Syntax Error
Dear Gurus,
I have encountered an issue while trying to remove warning for using Native SQL statement using pseudo comment "#EC CI_EXECSQL
The thing is like this -- i have used follwing native sql command in abap.
EXEC SQL.
CONNECT TO 'SURROUND_DB'
ENDEXEC.
Now when i am checking this code in code inspector it is showing a warning with information below
CA CL_CI_TEST_CRITICAL_STATEMENTS0006
Code Inspector
Critical Statements
Use of Native SQL
Authorization checks cannot be appropriately run using EXEC SQL and should be carried out at program level.
The message can be hidden using the pseudo-comment "#EC CI_EXECSQL
Use of exceptin handling section for that warning showing me to use :
The message can be hidden using pseudo
comment "#EC CI_EXECSQL
Now when I am using "#EC CI_EXECSQL in the abap like below :
EXEC SQL. "#EC CI_EXECSQL
CONNECT TO 'SURROUND_DB'
ENDEXEC.
It is giving syntax error
The text literal ""#EC CI_EXECSQL " is longer than 255
characters.Check whether it ends correctly.
Please provide the guideline to resolve this issue.
Thanks & regards
Saifur Rahaman.Hi Saifur,
You can remove the warning using the following syntax:
EXEC "#EC CI_EXECSQL
SQL.
CONNECT TO 'SURROUND_DB'
ENDEXEC.
At least, it worked fine for me when using OPEN CURSOR, SELECT, FETCH and so on statements.
The way to use the pseudo comment is not very intuitive, but at least for my examples worked fine.
I hope this may help you.
Best regards,
Edgardo G. König -
What is the use of "#ec * in a abap program
Hi,
i want to know that is the use of "#ec * in an abap program.
i heard that it is used to supress the warning messages which we get when we do extended syntax check.
fist of all i want to know is it true r false and if its true then i want to know more about it.
regards,
maqsoodHi
Yes it's true.
If you put "#ec * at the end of a abap code row, you can suppress the warnining messages of extended program check.
Every kind of warning has own sign, you find out them while running extended check.
It's a way to clear the useless messages.
For example, you have created an include where you have defined several routines you have to use in several programs, but every program don't use all routines of that include, or you dynamically call those routines, so if you run the extend check for a certain program you can get a warning like that:
FORM PLUTO not called directly
Now you can't delete the routine from the include, because it can be used by other program, but you can hide that message by "#ec CALLED:
FORM <MY_FORM>. "#EC CALLED
ENDFORM.
Max -
Use of ERP Infoset inside ABAP program
Hello experts,
I created a quite complex InfoSet which is supposed to extract business relevant information from FI tables (above all BSID and BSAD) and provide them to users as a mean to interpret data. I'd like to use those data in a custom ABAP program with an extended logic, but I'm not sure how to use it inside my code.
The final result should be to send daily updates on BSAD activities to BI system, and given that BSAD does not have (as far as I know) any mean to completely track creation/modify actions, I came out with the InfoSet solution that make use of an additional field (called update_timestamp) derived from a complex query.
Any help/suggestion on how to overcome the issue will be greatly appreciated.
Best regards
Davide RizzoHi
Yes it's true.
If you put "#ec * at the end of a abap code row, you can suppress the warnining messages of extended program check.
Every kind of warning has own sign, you find out them while running extended check.
It's a way to clear the useless messages.
For example, you have created an include where you have defined several routines you have to use in several programs, but every program don't use all routines of that include, or you dynamically call those routines, so if you run the extend check for a certain program you can get a warning like that:
FORM PLUTO not called directly
Now you can't delete the routine from the include, because it can be used by other program, but you can hide that message by "#ec CALLED:
FORM <MY_FORM>. "#EC CALLED
ENDFORM.
Max -
Notes on using Object oriented concept in ABAP
Hi ,
I want somes notes on how to use Object oriented concept in ABAP.
Thanks in advance.
ChetanHi, this may help you
OOPs ABAP uses Classes and Interfaces which uses Methods and events.
If you have Java skills it is advantage for you.
There are Local classes as well as Global Classes.
Local classes we can work in SE38 straight away.
But mostly it is better to use the Global classes.
Global Classes or Interfaces are to be created in SE24.
SAP already given some predefined classes and Interfaces.
This OOPS concepts very useful for writing BADI's also.
So first create a class in SE 24.
Define attributes, Methods for that class.
Define parameters for that Method.
You can define event handlers also to handle the messages.
After creation in each method write the code.
Methods are similar to ABAP PERFORM -FORM statements.
After the creation of CLass and methods come to SE38 and create the program.
In the program create a object type ref to that class and with the help of that Object call the methods of that Class and display the data.
Example:
REPORT sapmz_hf_alv_grid .
Type pool for icons - used in the toolbar
TYPE-POOLS: icon.
TABLES: zsflight.
To allow the declaration of o_event_receiver before the
lcl_event_receiver class is defined, decale it as deferred in the
start of the program
CLASS lcl_event_receiver DEFINITION DEFERRED.
G L O B A L I N T E R N A L T A B L E S
*DATA: gi_sflight TYPE STANDARD TABLE OF sflight.
To include a traffic light and/or color a line the structure of the
table must include fields for the traffic light and/or the color
TYPES: BEGIN OF st_sflight.
INCLUDE STRUCTURE zsflight.
Field for traffic light
TYPES: traffic_light TYPE c.
Field for line color
types: line_color(4) type c.
TYPES: END OF st_sflight.
TYPES: tt_sflight TYPE STANDARD TABLE OF st_sflight.
DATA: gi_sflight TYPE tt_sflight.
G L O B A L D A T A
DATA: ok_code LIKE sy-ucomm,
Work area for internal table
g_wa_sflight TYPE st_sflight,
ALV control: Layout structure
gs_layout TYPE lvc_s_layo.
Declare reference variables to the ALV grid and the container
DATA:
go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container,
o_event_receiver TYPE REF TO lcl_event_receiver.
DATA:
Work area for screen 200
g_screen200 LIKE zsflight.
Data for storing information about selected rows in the grid
DATA:
Internal table
gi_index_rows TYPE lvc_t_row,
Information about 1 row
g_selected_row LIKE lvc_s_row.
C L A S S E S
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING
e_object e_interactive,
handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
Event handler method for event toolbar.
CONSTANTS:
Constants for button type
c_button_normal TYPE i VALUE 0,
c_menu_and_default_button TYPE i VALUE 1,
c_menu TYPE i VALUE 2,
c_separator TYPE i VALUE 3,
c_radio_button TYPE i VALUE 4,
c_checkbox TYPE i VALUE 5,
c_menu_entry TYPE i VALUE 6.
DATA:
ls_toolbar TYPE stb_button.
Append seperator to the normal toolbar
CLEAR ls_toolbar.
MOVE c_separator TO ls_toolbar-butn_type..
APPEND ls_toolbar TO e_object->mt_toolbar.
Append a new button that to the toolbar. Use E_OBJECT of
event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.
This class has one attribute MT_TOOLBAR which is of table type
TTB_BUTTON. The structure is STB_BUTTON
CLEAR ls_toolbar.
MOVE 'CHANGE' TO ls_toolbar-function.
MOVE icon_change TO ls_toolbar-icon.
MOVE 'Change flight' TO ls_toolbar-quickinfo.
MOVE 'Change' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD handle_user_command.
Handle own functions defined in the toolbar
CASE e_ucomm.
WHEN 'CHANGE'.
PERFORM change_flight.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD.
ENDCLASS.
S T A R T - O F - S E L E C T I O N.
START-OF-SELECTION.
SET SCREEN '100'.
*& Module USER_COMMAND_0100 INPUT
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
MODULE status_0100 OUTPUT.
DATA:
For parameter IS_VARIANT that is sued to set up options for storing
the grid layout as a variant in method set_table_for_first_display
l_layout TYPE disvariant,
Utillity field
l_lines TYPE i.
After returning from screen 200 the line that was selected before
going to screen 200, should be selected again. The table gi_index_rows
was the output table from the GET_SELECTED_ROWS method in form
CHANGE_FLIGHT
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines > 0.
CALL METHOD go_grid->set_selected_rows
EXPORTING
it_index_rows = gi_index_rows.
CALL METHOD cl_gui_cfw=>flush.
REFRESH gi_index_rows.
ENDIF.
Read data and create objects
IF go_custom_container IS INITIAL.
Read data from datbase table
PERFORM get_data.
Create objects for container and ALV grid
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_custom_container.
Create object for event_receiver class
and set handlers
CREATE OBJECT o_event_receiver.
SET HANDLER o_event_receiver->handle_user_command FOR go_grid.
SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.
Layout (Variant) for ALV grid
l_layout-report = sy-repid. "Layout fo report
Setup the grid layout using a variable of structure lvc_s_layo
Set grid title
gs_layout-grid_title = 'Flights'.
Selection mode - Single row without buttons
(This is the default mode
gs_layout-sel_mode = 'B'.
Name of the exception field (Traffic light field) and the color
field + set the exception and color field of the table
gs_layout-excp_fname = 'TRAFFIC_LIGHT'.
gs_layout-info_fname = 'LINE_COLOR'.
LOOP AT gi_sflight INTO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
Value of traffic light field
g_wa_sflight-traffic_light = '1'.
Value of color field:
C = Color, 6=Color 1=Intesified on, 0: Inverse display off
g_wa_sflight-line_color = 'C610'.
ELSEIF g_wa_sflight-paymentsum => 100000 AND
g_wa_sflight-paymentsum < 1000000.
g_wa_sflight-traffic_light = '2'.
ELSE.
g_wa_sflight-traffic_light = '3'.
ENDIF.
MODIFY gi_sflight FROM g_wa_sflight.
ENDLOOP.
Grid setup for first display
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_variant = l_layout
i_save = 'A'
is_layout = gs_layout
CHANGING it_outtab = gi_sflight.
*-- End of grid setup -
Raise event toolbar to show the modified toolbar
CALL METHOD go_grid->set_toolbar_interactive.
Set focus to the grid. This is not necessary in this
example as there is only one control on the screen
CALL METHOD cl_gui_control=>set_focus EXPORTING control = go_grid.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0200 INPUT
MODULE user_command_0200 INPUT.
CASE ok_code.
WHEN 'EXIT200'.
LEAVE TO SCREEN 100.
WHEN'SAVE'.
PERFORM save_changes.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*& Form get_data
FORM get_data.
Read data from table SFLIGHT
SELECT *
FROM zsflight
INTO TABLE gi_sflight.
ENDFORM. " load_data_into_grid
*& Form change_flight
Reads the contents of the selected row in the grid, ans transfers
the data to screen 200, where it can be changed and saved.
FORM change_flight.
DATA:l_lines TYPE i.
REFRESH gi_index_rows.
CLEAR g_selected_row.
Read index of selected rows
CALL METHOD go_grid->get_selected_rows
IMPORTING
et_index_rows = gi_index_rows.
Check if any row are selected at all. If not
table gi_index_rows will be empty
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'You must choose a line'.
EXIT.
ENDIF.
Read indexes of selected rows. In this example only one
row can be selected as we are using gs_layout-sel_mode = 'B',
so it is only ncessary to read the first entry in
table gi_index_rows
LOOP AT gi_index_rows INTO g_selected_row.
IF sy-tabix = 1.
READ TABLE gi_sflight INDEX g_selected_row-index INTO g_wa_sflight.
ENDIF.
ENDLOOP.
Transfer data from the selected row to screenm 200 and show
screen 200
CLEAR g_screen200.
MOVE-CORRESPONDING g_wa_sflight TO g_screen200.
LEAVE TO SCREEN '200'.
ENDFORM. " change_flight
*& Form save_changes
Changes made in screen 200 are written to the datbase table
zsflight, and to the grid table gi_sflight, and the grid is
updated with method refresh_table_display to display the changes
FORM save_changes.
DATA: l_traffic_light TYPE c.
Update traffic light field
Update database table
MODIFY zsflight FROM g_screen200.
Update grid table , traffic light field and color field.
Note that it is necessary to use structure g_wa_sflight
for the update, as the screen structure does not have a
traffic light field
MOVE-CORRESPONDING g_screen200 TO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
g_wa_sflight-traffic_light = '1'.
C = Color, 6=Color 1=Intesified on, 0: Inverse display off
g_wa_sflight-line_color = 'C610'.
ELSEIF g_wa_sflight-paymentsum => 100000 AND
g_wa_sflight-paymentsum < 1000000.
g_wa_sflight-traffic_light = '2'.
clear g_wa_sflight-line_color.
ELSE.
g_wa_sflight-traffic_light = '3'.
clear g_wa_sflight-line_color.
ENDIF.
MODIFY gi_sflight INDEX g_selected_row-index FROM g_wa_sflight.
Refresh grid
CALL METHOD go_grid->refresh_table_display.
CALL METHOD cl_gui_cfw=>flush.
LEAVE TO SCREEN '100'.
ENDFORM. " save_changes
chk this blog
/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid
Reward if helpfull.
Regards Madhu. -
Hi guys,
I need to know exactly that it gives back a variable SAP Exit, for it wanted to see the code ABAP of that variable , is this possible one?, some form exists to see the code ABAP of a variable SAP Exit?.
Thanks in advance.
Regards
Mauri.Hi Mauricio,
Try using RSVAREXIT_<i>yrvariablename</i> in SE37 and display the code.
Hope this helps... -
Please help!!
How many times can you install Lightroom 5? My problem is that I have saved my programs on C. To I have more space, I want to save my programs now on E. Can I now uninstall Lightroom and reinstall from C to E? Can I use the same license code as the first installation?Thank you for your answers, it helps me a lot.
But sorry for my ignorance. I understand how you mean it, but I don't know how to do it. I'm scared to lose the settings/edits of the images. -
Getting 'File not found' error while using server object model code
Hi,
I am using server object model code to pull list data in a console application. My machine has standalone installation of SP 2010. I am getting error 'File Not Found', however the same operation is working fine with client object model code.
Code I am using:
string strURL=http://servername/sites/sitename;
SPSite siteObj=new SPSite (strURL); //getting error here.
I have already checked the below,
1. Framework being used is 3.5.
2. I have proper access to site.
3. Running visual studio as admin.
Any help is much appreciated.
thanks
Tarique
thanks and regards Tarique AslamHello Tarique ,
Couple of pints need to check:
1. User running the console application needs to have at least read permission to the SharePoint databases
2. Set application by changing the "Platform target:" option on the "Build" to "Any CPU"
Also refer this similar thread:
http://social.msdn.microsoft.com/Forums/sharepoint/en-US/2a419663-c6bc-4f6f-841b-75aeb9dd053d/spsite-file-not-found
Hope it could help
Hemendra:Yesterday is just a memory,Tomorrow we may never see
Please remember to mark the replies as answers if they help and unmark them if they provide no help -
How to Use the JAVA SCRIPT code in .htm page of the component
Hi .
In my requirement i have to use Java Script Function in .htm code ..how to use the java script code and functions in .htm???
thank you
B.ManiCheck this document [Arun's Blog|http://wiki.sdn.sap.com/wiki/display/CRM/CRMWebClientUI-TalkingwithJava+Script]
Regards
Kavindra -
I am new to ABAP. I tried creating abstract class and found that class builder allows development of abstract final class. What is the use of such class in ABAP?
Hi,
Does not compile:
This one do:
Inheritance:
Regards. -
Use of 'ME' keyword in ABAP Objects?
Hi all,
Can any one please use of 'ME' keyword in ABAP Objects?
Thanks,
Vijay.
Moderator message: next time, please search for available information before asking.
Edited by: Thomas Zloch on Sep 16, 2010 5:33 PMHi,
Please find the description about the ME keyword as per the SAP documentation and help.sap.com.
Within the implementation of every instance method, an implicitly created local reference variable called me is available, which points to the instance in which the method is currently being executed. The static type of me is the class in which the instance method is implemented.
Each class implicitly contains the reference variable me. In objects, the reference variable mealways contains a reference to the respective object itself and is therefore also referred to as the self-reference. Within a class, you can use the self-reference me to access the individual class components:
-To access an attribute attr of your class: me->attr
-To call a method meth of your class: CALL METHOD me->meth
When you work with attributes of your own class in methods, you do not need to specify a reference variable. The self-reference me is implicitly set by the system. Self-references allow an object to give other objects a reference to it. You can also access attributes in methods from within an object even if they are obscured by local attributes of the method.
Regards,
Sagar -
Is third-party SO/PO process possible using only one company code?
Hi friend,
1) my client wants to implement third-party PO process but also wants a way of keeping track of inventory during this process. I know that inventory should be tracked on the vendor side and not on our client side since we're doing third-party PO.
However my client wants to track inventory (in an inventory g/l account like 120100) so that when my client post a Goods Receipt, the inventory account
gets Debited and when client post the outgoing invoice to customer, the inventory account gets Credited. In this way, my client can track
if the customer have received the ordered item or not.
The problem is that third-party PO posts to consumption account but DOES NOT post to inventory account. Is there any way of
setting this up so that in addition to posting to comsumption account every time a Goods Receipt occurs?
2) i tried to create "Individual Purchase Order" (customer order from client -> client order from
vendor -> vendor ships item to client -> client then ships item to customer) so that posting will hit inventory account.
However, i find that taking this approach involves setting up a Plant for vendor (A), a Plant for our Client (B), and a Plant for Customer (C).
Because when i do a Goods Receipt, the stock has move from Plant A to Plant B. Then when i do a Goods Issue to the customer, it asks for the receiving plant. I assume this means that the stock moves from Plant B to Plant C.
Also, from the reading i did on the forum, i get the impression that i need to create more than one Company Code if i were to do
third-party PO. Do the Vendors have to be created in a different company code then the Customer? Or does it mean that Just the
plant (like Plant A) needs to be created in a different Company Code then Plant B and Plant C?
3) can i do third-party PO using only ONE company code?
Can anyone provide some clarification on this issue? I've read tons of posting but none really helped clear this issue up.
Thanks so much.Dear Kishore,
Individual PO processing is not third party process at all. In third party process the vendor delivers the goods dirctly to the customer - please check what SAP help says.
http://help.sap.com/saphelp_46c/helpdata/en/dd/5601d4545a11d1a7020000e829fd11/content.htm
Dear Queyen,
One important point of third party process is that there's no need to keep stock of materials - that is in harmony with reality. Why does your customer want to keep stock from the goods if they doesn't receive at all? Is it coreect? It doesn't correspond to the fact.
You can do statistical (ghost) GR against the third-party PO and you can see the goods movement in MB51 - I think this should be enough.
http://help.sap.com/saphelp_46c/helpdata/en/dd/560287545a11d1a7020000e829fd11/frameset.htm
BR
Csaba -
The payment method R in country SM is not used in any company code
Hello.
In transaction FBZP I choose "Payment Method/Country overview"
I open SM (San Marino) and I choose "Use in company code" I obtain the message:
The payment method R in country SM is not used in any company code
What have I to do?
Thanks.
Mario
Edited by: Ferruccio Galli on May 7, 2009 10:41 AM
No news for me, please?Hi ,
Go through below path for confiquration patteren
Path: SPRO Financial Accounting Accounts receivable and accounts payable Business transactions out going payments Automatic out going payments Payment method/ bank selection for payment program (Transactions code: FBZP)
set up payments method per country for payment transactions
Set up Payment methods for company code for payment transactions
Set up All Company codes for payment transactions:
Set up paying company code for payment transactions:
Bank determination:
Regards
Surya
Maybe you are looking for
-
How can my wife and I be friends in game center if we use the same Itunes account?
How can my wife and I be friends in game center if we use the same Itunes account?
-
How do you stop a recovered email from coming back repeatedly? I sent an email to my wife with pictures, it keeps coming back to me every 10 to 15 seconds and is saved to hard drive in the user/mail folder. I need to figure out why it keeps doning th
-
I have a few applications in my startup (Mail, iCal and Skype) which all of a sudden won't open - and until I force quit them I can't shut down. I also can't open accounts in system preferences to try and delete them. There are also one or two other
-
What more info do you need? I just can't get Firefox 4 to let me change my search engine to Google and there's nowhere in the tools menu to help. Also, Firefox is a lot slower to load than, say Safari or Chrome. Do you have a good excuse for this??
-
Gmail crashes safari and tabs are messed up
Ever since I got a new MacBook Pro with Lion (transferred everything over from my old MacBook pro which was running 10.6), Safari has been really flaky. Most of the problems seem to be when I'm using Gmail. Safari will freeze, crash, log me out of