Define background job
hi all
I have CI and AP.
I want to process batch job only on AP.
as you know, I can assign exec.target field to AP
But!! I want to set exec.target field to AP automatically on initial screen when I execute SM37.
Plz ~~
Edited by: Lee Jun Seok on Jun 13, 2008 8:02 AM
Hi Juan,
I agree but that is why my initial question was why is this needed in the first place? I mean why can't load balancing be used.
Also there is one issue with this step. This step is all fine if you are creating the job through SM36. If however it is done via SE38 then you cannot schedule any job immediately. You will have to give a future time. The go to Sm36 modify the job and give execution server and then release it immediately. Well in this scenario we have couple of extra steps that end users might find inconvenient at times.
With regards.
Ruchit.
Similar Messages
-
How define background job, after a job, daily
Hi Gurus!
i need to create several Jobs, one after another. i'm working with R/3 enterprise.
I can create a Job after another, but I can't put it daily.
anyone knows how I can define job, after a specific job, daily???
THANKS!!!!Hi Oscar,
If you want to execute the Background jobs one by one(sequence order),
Goto <b>SM36</b> and create a Background job, then create another job then press <b>Start condition</b>, in this one there is a tab after JOB, here give the job name, os the will be run after this job complets
another way is there, if you want to run the jobs in a sequence, there is a <b>TAB called STEP</b>, create a Job name then press the tab STEP, here give the first job name then press the create button then create the second job name.. like this you can give N number of background Programs one by one
hope you got the answer
Thanks
Sudheer -
Hi,
I am scheduling a report to run in background.
In this report it is creating background jobs automatically for different company codes.
It submits the 1st background job and waits until it finishes.
Then 2nd job starts in background and continues with other jobs.
At end it finishes all the jobs and closes.
Now my problem is.
1. Whether is it possible for us to submit all the jobs at 1 time. And execute at same time. Ie., 1st, 2nd job will start at same time.
2. If possible how can we do that.
What I have written is
loop at companycode.
Create job name.
call fun 'Job_Open'.
submit xxxx user sy-uname via job job_name numer job_count
to sap-spool
spool parameters l_spool_parameter
without spool dynpro
with companycode
with ......
and return.
endloop.
Please help ASAP, urgent.hi praveen,
Job Scheduling Explained
Definition
Before any background processing can actually begin, background jobs must be defined and scheduled. The scheduled time for when a job runs is one part of the jobs definition. There are several ways to schedule jobs:
From Transaction SM36 (Define Background Job)
With the "start program in the background" option of either Transaction SA38 (ABAP: Execute Program) or Transaction SE38 (the ABAP editor)
Through the background processing systems own programming interface. (Many SAP applications use the internal programming interface to schedule long-running reports for background processing.)
Through an external interface.
Scheduling Background Jobs
Use
You can define and schedule background jobs in two ways from the Job Overview:
· Directly from Transaction SM36. This is best for users already familiar with background job scheduling.
· The Job Scheduling Wizard. This is best for users unfamiliar with SAP background job scheduling. To use the Job Wizard, start from Transaction SM36, and either select Goto ® Wizard version or simply use the Job Wizard button.
Procedure
1. Call Transaction SM36 or choose CCMS ® Jobs ® Definition.
2. Assign a job name. Decide on a name for the job you are defining and enter it in the Job Name field.
3. Set the jobs priority, or Job Class:
· High priority: Class A
· Medium priority: Class B
· Low priority: Class C
4. In the Target server field, indicate whether to use system load balancing.
· For the system to use system load balancing to automatically select the most efficient application server to use at the moment, leave this field empty.
· To use a particular application server to run the job, enter a specific target server.
5. If spool requests generated by this job are to be sent to someone as email, specify the email address. Choose the Spool list recipient button.
6. Define when the job is to start by choosing Start Condition and completing the appropriate selections. If the job is to repeat, or be periodic, check the box at the bottom of this screen.
7. Define the jobs steps by choosing Step, then specify the ABAP program, external command, or external program to be used for each step.
8. Save the fully defined job to submit it to the background processing system.
9. When you need to modify, reschedule, or otherwise manipulate a job after you've scheduled it the first time, you'll manage jobs from the Job Overview.
Note: Release the job so that it can run. No job, even those scheduled for immediate processing, can run without first being released.
Specifying Job Start Conditions
Use
When scheduling a background job (either from Transaction SM36, Define Background Job or CCMS ® Jobs ® Definition), you must specify conditions that will trigger the job to start.
Procedure
Choose the Start condition button at the top of the Define Background Job screen.
Choose the button at the top of the Start Time screen for the type of start condition you want to use (Immediate, Date/Time, After job, After event, or At operation mode) and complete the start time definition in the screen that appears.
For the job to repeat, check the Periodic job box at the bottom of the Start Time screen and choose the Period values button below it to define the frequency of repetition (hourly, daily, weekly, monthly, or another specific time-related period). Then choose the Save button in the Period values screen to accept the periodicity and return to the Start Time screen.
Once youve completed specifying the job start conditions, choose the Save button at the bottom of the Start Time screen to return to the Define Background Job screen.
No job can be started until it is released, including jobs scheduled to start immediately. Since releasing jobs can be done only by a system administrator from the job management screen (Transaction SM37) or by other users who have been granted the appropriate Authorizations for Background Processing, no unauthorized user can start a job without explicit permission
Managing Jobs from the Job Overview
Use
The Job Overview, or Job Maintenance, screen is the single, central area for completing a wide range of tasks related to monitoring and managing jobs, including defining jobs; scheduling, rescheduling, and copying existing jobs; rescheduling and editing jobs and job steps; repeating a job; debugging an active job; reviewing information about a job; canceling a job's release status; canceling and deleting jobs; comparing the specifications of several jobs; checking the status of jobs; reviewing job logs; and releasing a job so it can run.
Procedures
To display the Job Overview screen, choose CCMS ® Jobs ® Maintenance or call Transaction SM37. Before entering the Job Overview screen, the system first displays the Select Background Jobs screen. You'll need to complete this Job Selection screen to define the criteria for the jobs you want to manage. Once you've selected jobs to manage, you can choose from a wide range of management tasks:
To copy a single existing job, choose Job ® Copy.
To reschedule or edit job steps or attributes of a single job, choose Job ® Change. A job step is an independent unit of work within a background job. Each job step can execute an ABAP or external program. Other variants or authorizations may be used for each job step. The system allows you to display ABAP programs and variants. You can scan a program for syntax errors. You can also display the authorizations for an authorized user of an ABAP job step.
To repeat a single job, choose Job ® Repeat scheduling.
To debug an active job, choose Job ® Capture: active job. Only a single selection is allowed. If an active job seems to be running incorrectly (e.g., running for an excessively long time), you can interrupt and analyze it in debugging mode in a background process, and then either release it again or stop it altogether.
You will be able to capture a background job only if you are logged on to the SAP server on which the job is running. To find server information in the Job Overview, select and mark the job, then choose Job ® Job details.
To review information about a job, choose Job ® Job details. Details displayed can include:
current job status
periodicity, or the repetition interval
other jobs linked to the current job, either as previous or subsequent jobs
defined job steps
spool requests generated by the current job
To cancel a job's "Released" status, select the job or jobs from the Job Overview list and choose Job ® Release -> Scheduled.
To cancel a job from running but keep the job definition available, select the job or jobs from the Job Overview list and choose Job ® Cancel active job.
To delete a job entirely, select the job or jobs from the Job Overview list and choose Job ® Delete. Jobs with the status of Ready or Running cannot be deleted.
To compare the specifications of more than one job, select the jobs from the Job Overview list and choose Job ® Compare jobs.
To check the status of jobs, select the job or jobs from the Overview Job list and choose Job ® Check status. This allows you to either change the job status back to Planned or cancel the job altogether. This is especially useful when a job has malfunctioned.
To review job logs, select a job or jobs with the status Completed or Canceled from the Job Overview list and
regards
karthik
reward me points if helpfull -
I am defining background job in abap report i am facing the below error
Printer not suitable for job step; automatic output not possible.
Kindly suggest Immediately,
Best Regards,
kaleesThe error was resolved, we are not assigned properly in variant.
-
Hi any one please explain background job scheduling
Hi any one please explain background job scheduling . Good answer can be rewarded.
ThanksBackground jobs are pgms that are scheduled to be run in the Background without user interaction. So this can be done only for Type 1(executable) Program and not for Module-Pool Programs. Typically, a variant is defined and the pgm is run using the same.
The transaction code is sm36 -Define Background job. Using the Start Condition tab you can define when you want the job to run (specific time or if it has to follow after a particular job is done etc.,) Using the Step tab you can assign the pgm name and variant.
After the job is scheduled, you can check the status in sm37, along with the Job log and Spool.
For more info:
http://help.sap.com/saphelp_bw30b/helpdata/en/c4/3a7f87505211d189550000e829fbbd/content.htm -
HI
Can anybody please let me know how to find out the program scheduled in a job, as either the job may not be run for long time or not even scheduled?
Thanks in advanceHI sameer
Did u tried
transaction <b>SM36</b> for defining background jobs
and <b>SM37</b> for displaying all background jobs that you want
Regards Rk
Message was edited by:
Rk Pasupuleti -
GRC Access Control 5.3: Background Jobs in RAR don't start
Hi experts,
I defined background jobs in RAR (configuration -> background jobs -> schedule jobs) for initial loading. and there are 3 background tasks defined. Unfortunately the jobs are never executed (jobtype= immediately).
Any help to execute the job would be appreciated.
Kind regards,
MaxHello Max,
Here is what you should be checking :
1) Check if the Background job daemon is running :
URL - http://<server>: port/sap/CCBgStatus.jsp
2) Check if the analysis daemon manager is running :
URL - http://<server>:<port>/sap/CCADStatus.jsp
3) Follow SAP Notes 999785 and 1176262 .
This should help you resolve the issue
Harleen
SAP GRC RIG -
CCMS Monitor to Pager for Failed Background Jobs
Hello Experts,
I am currently leveraging Central CCMS monitoring to alert us via email whenever a background job fails in production using the MTE Class R3BPServerSpecAbortedJobs.
I am trying to find a way that I can tweak the monitor to alert me ONLY when specific background jobs fail.
We want this alert to notify the oncall pager only when a handful of critical jobs fail. Does anyone know how I can delimit this MTE?
For example, we will be creating jobs that begin with Z_ALERT* that I will tie to an auto-react method that will email a pager.
Thanks in advance.
BillHi Sundara.
From following link, you can download step by step setup information.
So please check following documents.
http://www.service.sap.com/bpm
=>Media Library=>Technical Information
=>1. Business Process Monitoring - Setup Roadmap
=>2. Setup Guide - Business Process Monitoring
Before you start setup, I recommend you to check
SAP Notes 521820 to ensure whether you already fulfill
prerequestions.
Basically what you have to do is following.
1. Describe your business process under following area.
(T-CD DSWP =>Solution Landscape =>Solution landscape maintenance)
2. Setup BPMon session.
(T-CD DSWP =>Operation Setup => Solution Monitoring =>
Business Process Monitoring)
in BPMon session, select job monitoring. And define background
job that you want to monitor.
In BPMon job monitoring, you can monitor, cancel, delay, duration,
unexpected parallelization, also job log and so on.
I hope this information help you.
Best Regards
Keiji Mishima -
How to cancel the background job?
Hi,
I have schedule the backgroud job.How to cancel the background the job.
When i select the job and click on stop button, iam getting message "job is not active - cancellation not possiable".How to schedule the background job.
Regards,
T.sureshgoto sm37
SM36 Define Background Job
SM37 Background Job Overview
SM39 Job Analysis
U can Moniter the background Jobs through T code SM37
In the Simple Job Selection window enter the name of the Job and User of that Job and u can check the status of that Job like JobName, Job CreatedBy, Status, Start date, Start time Duration(sec.) Delay (sec.). -
Alerts: background job scheduling
Hi
i have defined alerts, and gave "no restriction " alert rule in runtime workbench. my doubt is whether can we define background jobs for the alerts. if so how it will be possible and how it will impact the performance of the XI server??
how can we find out which background jobs are assibned for the alerts.
please help meHi,
No need to schedule back ground jobs if your are on PI....i.e version 7.0
if you are on XI 3.0...based on the SP you need to schedule the report for generating the alerts....
HTH
Rajesh -
Alv show in report but when see in spool (after run background job) there i
my program have some error when i run result alv show in report but when see in spool (after run background job) there is no data, (other program can see result in spool)
Please help
here is some example of my program
********************************declare internal table*****************************
internal table output for BDC
data : begin of t_output occurs 0,
bukrs type anla-bukrs,
anln1 type anla-anln1,
anln2 type anla-anln2,
zugdt type anla-zugdt,
result(70) type c,
end of t_output.
*****get data from loop********************************
loop at t_anla.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = t_anla-anln1
IMPORTING
OUTPUT = t_anla-anln1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = t_anla-anln2
IMPORTING
OUTPUT = t_anla-anln2.
check record is correct or not
select single bukrs anln1 anln2 zugdt
into w_output
from anla
where bukrs = t_anla-bukrs and
anln1 = t_anla-anln1 and
anln2 = t_anla-anln2
zugdt = '00000000'
if record is correct
if sy-subrc = 0 and w_output-zugdt = '00000000'.
w_output-bukrs = t_anla-bukrs.
w_output-anln1 = t_anla-anln1.
w_output-anln2 = t_anla-anln2.
w_output-result = 'Yes : this asset can delete'.
append w_output to t_output.
if record is not correct
elseif sy-subrc = 0 and w_output-zugdt <> '00000000'.
there is error record this asset have value already
v_have_error = 'X'.
w_output-bukrs = t_anla-bukrs.
w_output-anln1 = t_anla-anln1.
w_output-anln2 = t_anla-anln2.
w_output-result = 'Error : this asset have value already'.
append w_output to t_output.
else.
there is error record this asset donot exist in table anla
v_have_error = 'X'.
w_output-bukrs = t_anla-bukrs.
w_output-anln1 = t_anla-anln1.
w_output-anln2 = t_anla-anln2.
w_output-result = 'Error : this asset doest not exist'.
append w_output to t_output.
endif.
*end of check record is correct or not
clear w_output.
endloop.
******************************show data in ALV***************************************************
show data from file in ALV
perform display_report_ALV.
*& Form display_report_ALV
form display_report_ALV.
DATA: LT_FIELD_CAT TYPE SLIS_T_FIELDCAT_ALV,
LT_EVENTS TYPE SLIS_T_EVENT,
LV_REPID LIKE SY-REPID.
PERFORM ALV_DEFINE_FIELD_CAT USING LT_FIELD_CAT.
PERFORM ALV_HEADER_BUILD USING T_LIST_TOP_OF_PAGE[].
PERFORM ALV_EVENTTAB_BUILD USING LT_EVENTS[].
LV_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = LV_REPID
IT_FIELDCAT = LT_FIELD_CAT
I_SAVE = 'A'
IT_EVENTS = LT_EVENTS[]
TABLES
T_OUTTAB = t_output
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
WRITE: / 'Return Code : ', SY-SUBRC,
'from FUNCTION REUSE_ALV_GRID_DISPLAY'.
ENDIF.
endform.
*& Form alv_define_field_cat
text
-->P_LT_FIELD_CAT text
FORM ALV_DEFINE_FIELD_CAT USING TB_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT LIKE LINE OF TB_FCAT,
LV_COL_POS TYPE I.
DEFINE FIELD_CAT.
CLEAR WA_FIELDCAT.
ADD 1 TO LV_COL_POS.
WA_FIELDCAT-FIELDNAME = &1.
WA_FIELDCAT-REF_TABNAME = &2.
WA_FIELDCAT-COL_POS = LV_COL_POS.
WA_FIELDCAT-KEY = &3.
WA_FIELDCAT-NO_OUT = &4.
WA_FIELDCAT-REF_FIELDNAME = &5.
WA_FIELDCAT-DDICTXT = 'M'.
IF NOT &6 IS INITIAL.
WA_FIELDCAT-SELTEXT_L = &6.
WA_FIELDCAT-SELTEXT_M = &6.
WA_FIELDCAT-SELTEXT_S = &6.
ENDIF.
WA_FIELDCAT-DO_SUM = &7.
WA_FIELDCAT-OUTPUTLEN = &8.
APPEND WA_FIELDCAT TO TB_FCAT.
END-OF-DEFINITION.
FIELD_CAT 'BUKRS' 'ANLA' 'X' '' 'BUKRS' 'Company Code' '' ''.
FIELD_CAT 'ANLN1' 'ANLA' 'X' '' 'ANLN1' 'Asset Number' '' ''.
FIELD_CAT 'ANLN2' 'ANLA' 'X' '' 'ANLN2' 'Asset Sub Number' '' ''.
FIELD_CAT 'ATEXT' 'T5EAE' 'X' '' 'ATEXT' 'Result' '' ''.
FIELD_CAT 'RESULT' '' 'X' '' 'RESULT' 'RESULT' '' ''.
ENDFORM. " alv_define_field_catHi,
Check this code..
FORM display_report_alv.
DATA: lt_field_cat TYPE slis_t_fieldcat_alv,
lt_events TYPE slis_t_event,
lv_repid LIKE sy-repid.
PERFORM alv_define_field_cat USING lt_field_cat.
PERFORM alv_header_build USING t_list_top_of_page[].
PERFORM alv_eventtab_build USING lt_events[].
lv_repid = sy-repid.
IF sy-batch EQ 'X'. ----> " System Field for Backgroud..if Background use list display
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = lv_repid
it_fieldcat = lt_field_cat
i_save = 'A'
it_events = lt_events[]
TABLES
t_outtab = t_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
ELSE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_repid
it_fieldcat = lt_field_cat
i_save = 'A'
it_events = lt_events[]
TABLES
t_outtab = t_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDIF.
IF sy-subrc NE 0.
WRITE: / 'Return Code : ', sy-subrc,
'from FUNCTION REUSE_ALV_GRID_DISPLAY'.
ENDIF.
ENDFORM. "display_report_ALV -
To Check whether Background Job ran or no
How can we programatically check in a program whether a background job ran or not for a particular output type of invoice ?? Pls help me out
Hi,
This will probably work.
report zkiran_0001 .
data: xtbtco type tbtco .
parameters: p_job type tbtco-jobname.
start-of-selection.
clear xtbtco.
select single * from tbtco
into xtbtco
where jobname = p_job
and status = 'R'. " running
if sy-subrc = 0.
write:/ 'Job', p_job, ' is currently running'.
endif.
Statuses....
Status of background job
The following statuses are possible:
<b>Scheduled:</b> Job defined, but not yet eligible to run even if the start condition has been fulfilled.
<b>Released:</b> Job eligible to be started as soon as the start condition with which it was scheduled is fulfilled.
<b>Ready:</b> Job waiting to start. The job has been released and the job's start condition has been fulfilled.
<b>Active:</b> Job is currently running and can no longer be deleted or reset to scheduled.
<b>Finished:</b> Job has been successfully completed. All job steps completed successfully.
Note: the background processing system cannot always determine whether an external job step was successfully completed. In this case, the system assumes successful completion.
<b>Terminated:</b> Job was ended abnormally either through user action or through an error in running a job step.
Internal codes for these are as follows.
btc_running LIKE tbtco-status VALUE 'R',
btc_ready LIKE tbtco-status VALUE 'Y',
btc_scheduled LIKE tbtco-status VALUE 'P',
btc_released LIKE tbtco-status VALUE 'S',
btc_aborted LIKE tbtco-status VALUE 'A',
btc_finished LIKE tbtco-status VALUE 'F',
btc_put_active LIKE tbtco-status VALUE 'Z',
btc_unknown_state LIKE tbtco-status VALUE 'X'.
refer
https://forums.sdn.sap.com/click.jspa?searchID=4369376&messageID=1681128
Regards
Message was edited by:
Kiran Sure(skk) -
Hi Folks,
I would like to have some clarification on Back ground job scheduling.
I found 2 kind of possibilities for scheduling a program to run in back ground
1.programatically ( job_open , job_close)
2.thorugh sm36 ( defining a job & scheduling)
what is the dif between them?Is it only GUI advantage for 2nd option over 1st one?
<b>Is there is any particular context to use above things specifically</b>
<b>please list out the actual advantages of each option so that i can use them for my applications appropriatly...</b>
Thanks in advance
Raja.Hi again,
1. make it periodical job..can't we run the report again and again depending up on our need??
If the SCHEDULE is periodical,
the report will automatically run again and again.
(but not on our need, it will run
at the pre-destined stiuplated time,
eg. every hour, every day at 10:00 clock etc)
2. suppose there is a standard report
which prints out purchase order.
now we want to develope a z program,
which will have selection screen
for multiple POs and it should generate
the report and send mail !
3. Then in this case,
we develop the z program,
and write code
to submit the orignal po program,
ONE BY ONE,
using background concept.
(here i mean multiple times)
regards,
amit m. -
Error in triggering background job
HI, I've been facing an error which a background job is being scheduled. The scenario is something like this ...
1) A third party schedulling system triggers a SAP job and monitors the progress
2) In SAP, the master job is been copied with a different user name and then released for processing.
3) There are multiple jobs which get triggered but there is one job which is causing a problem.
4) The job makes a copy an stays in a scheduled status without getting released. While i try to manually release the job it give me an error that cannot create record in the database.
5) Upon checking the system log it gives me this - Error: INSERT background sched. table(job $$$$).
There is already an entry for the specified job in the table TBTCS.
6) While checking the TBTCS table i've found multiple entries out there. Should this table be empty or have information about the runtime of this job.
Please help as this background job is causing concerns in archiving processess defined.
Thankx in advance for your help.
Arvind.the earlier problem of background job was solved by changing the output device assigned to user wf-batch .
regarding the transport request :
when i was trying to execute the step : "Schedule bakgrd for missed deadlines " MANUEL it was giving me an option of SAVE AND SCHEDULE . which was creating the transport request . but when i executed it automatically it worked fine without asking a request to me ... i don't know why )-: ... probablly we can specify a different interval then the standard of three minutes and which will be transported (it's just a guess) . i have executed it automatically ...
well thanks all for u r help -
Background job not showing full output of Report
Dear Experts
we have created zpgm for stad report and try to take output as mail to particular user for future analysis bcaz stad gives only 2 days report only we need keep report for months together so when we run job in foreground it shows proper output but when same thing when we run from background it shows only some part of report in mail (we are unable to get full output through background job )
we send mail through spool receipts we have created folder and maintain user for getting mails through so15 distribution list
we need some input to come out of this major issue
if there is any other workaround let me know
RegardsHello,
If a job is defined by transaction SM36, the print format parameters will only be taken into account, if they are saved as user specific print parameters of the batch user. If no user specific print format
is defined, the ALV standard logic will be processed adjusting the print format to the actual line size of the report.
For example, the list line size is about 132 characters, the widest available format of the chosen printer will be selected X_65_132.
The problem would be solved by defining a device type which is no format assigned to print, or by defining user specific print format parameters for the batch user, who creates the jobs in SM36 (see
SAP note 1179399, item 6).
Regards,
David
Maybe you are looking for
-
Why am I getting an insufficient memory error in Illustrator?
I am getting an insufficient memory message on my illustrator program when I try to work on a particular document. I remember long ago when I used to install my programs on my Mac there were memory settings for the graphics programs. Does the pc work
-
I imported a 34:33 video clip I ripped using Handbrake from a user made DVD. The video seems to import correctly into Premiere CS5. When I drag the clip into the source box Premiere crashes after giving this error message: [/Scully64/shared/adobe/M
-
JDeveloper does not render faces component.
I have created a new Fusion apps project. and whenever I open a jspx or jsff page, all components tags are not recognized and found the following error in Messages console Dec 19, 2012 6:43:33 PM oracle.adfinternal.view.faces.lifecycle.LifecycleImpl
-
How do I stop extra instances of Firefox program being opened by another page when it loads?
How do I stop extra instances of Firefox program being opened by another page when it loads? When I log on to a favorite site it loads OK. The site has a number of pages. When I move to the second or third page, a second instance of Firefox automatic
-
How do you delete an application on Macbook pro 2012?
I just downloaded something off the web and no longer need it. It seems silly, but how can i delete the application?