HTTP Web Service in SP Designer 2013 Workflow calling WCF Service - 401 403 Error

Because of the limitations of SP Designer URL's I've had to create a custom webservice to Publish, Checkin, Approve etc....  I pass the List ID and a comment as parms in the HTTP POST. The WCF lives in the /15 ISAPI directory as it should.
I setup 3 dictionaries:
POST_RequestHeader
content-type: application/json;odata=verbose, accept:application/json;odata=verbose, X-HTTP-Method: MERGE, IF-MATCH:*,Authorization:
If I don't include Authorization as null, I get a 401.  With this I get a 403.
POST_Metadata
type string "name of my SP.Data category from tyhe list"
POST_Parameters
__metadata with the name of POST_Metadata
Call the webservice in SP DESIGNER 2013
Http://Mysitecollection/_vti_bin/MyWCFService/MyWCFService.svc/MyPublish/?id=123&comment='BasicTest2'
RequestHeaders set to POST_RequestHeader
RequestContent set to POST_Parameters
The Interface correctly maps and routes me to the method.  The document is in Draft state ready for "Publish a Major version".
I cannot get past the security errors.  My GET methods work fine.  Any thoughts?  How can I pass the proper credentials?
I'm running in an App Step and have granted workflows elevated privileges so no problem there.
Thanks.
                using (SPSite siteCollection = new SPSite("myservercollectionurl"))
                    using (SPWeb web = siteCollection.OpenWeb())
                        SPWeb site = siteCollection.RootWeb;
                        SPList corpPol = site.Lists["Our Policies"];
                        SPListItem spListItem = corpPol.GetItemById(id);
                        SPFile file = spListItem.File;
                        trace = "In SPsite Loop" + spListItem["Title"].ToString(); 
<--- Title is written OK to log
                        diagSvc.WriteTrace(0, category, TraceSeverity.Verbose, trace);
                        if (file.CheckOutType == SPFile.SPCheckOutType.None)
                            spListItem.File.Publish("done in WCF"); 
<--  Blows everytime with 403 Forbidden
This is in the Sharepoint logs:
System.Runtime.InteropServices.COMException (0x8102006D): The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.     at Microsoft.SharePoint.SPFile.PublishOrUnPublish(String
comment, Boolean fPublish)
Tom

Hi Tom,
Here are two blogs for you to check:
Using SharePoint REST services from workflow with POST method
http://mysharepointinsight.blogspot.com/2013/05/using-sharepoint-rest-services-from.html
SharePoint Designer 2013 Workflow: Working with Web Services
http://blog.appliedis.com/2014/10/09/sharepoint-designer-2013-workflow-working-with-web-services/
We can use the fiddler to compose the HTTP POST method with the properly request headers and request body, then create your workflow.
http://www.fabiangwilliams.com/2013/09/03/more-on-sharepoint-2013-rest-api-with-fiddler-and-spd/
Best Regards
Dennis Guo
TechNet Community Support

Similar Messages

  • Issue in accessing Client Web Service 401 authentication error

    Hi,
    I have a requirement where i need to call a web service from SOA composite. When i deploy the service on SOA Server and try accessing it i get below error
    **oracle.fabric.common.FabricException: Cannot read WSDL "{http://www.service-now.com}ServiceNow_u_incident" from Metadata Manager.: Error in getting XML input stream: https://XXXXXXX.service-now.com/incident.do?WSDL: Response: '401: Unauthorized' for url: 'https://XXXXXXXX.service-now.com/incicdent.do?WSDL'**
    If i go from broweser and hit the url it asks for my ldap / windows credential.
    My question is how to i pass these credentials from Composite.
    sample service
    https://demo.service-now.com/incident.do?WSDL
    Shirish

    To pass HTTP Basic Auth from an External Reference in a composite_
    Set up in the EM
    1. Create the credentials in the EM
    - In the EM Weblogic Domain > right click the domain name
    - Choose Security > Credentials
    2. Create an oracle.wsm.security map
    This is where the http token details are held
    - If the oracle.wsm.security does not exist create one (Create Map)
    - call it oracle.wsm.security
    3. Create the Key
    - Click create Key
    - Enter the following values
         Select Map -> oracle.wsm.security
         Key -> Key name
         Type -> Password
         Username -> << basic auth username required >>
         Password -> << basic auth password required >>
         Description -> Clear text description
    Note : Make the key name specific to the service you are accessing i.e. basic.credentials.sitea.demo
    Secure the Reference Partner Link
    In JDeveloper
         Open the composite that needs securing
         Right click on the external reference
         Select Configure WS Policies
         For Security, click the + button
         Select the oracle/wss_http_token_client_policy entry
         Select this and click the pencil button to edit the Override Value.
         In the override value column (csf-key), enter the credential key name you wish to use. i.e. basic.credentials.sitea.demo
    Deploy the service, and this will now be secured against the Basic Auth.
    This does not address SSO / Windows AD integration from the client, this is where a Web Service is protected by basic auth. If you need to integrate with AD as SSO etc then you will need to configure Kerberos. That is a much bigger explaination that you will probably find on the Net.
    Good luck
    Edited by: rodhiggins on 28/05/2013 22:52

  • Error during connection to https web-service via proxy-server

    Hello!
    I have created Web Service Proxy using wizard in JDeveloper. Then added some code for authorization on my corporate proxy server.
    Then I was trying to connect to two different web services
    - first one was HTTP web-service - successful
    - second one was HTTPS web-service - failed with error :
    <Error> <Net> <BEA-000903> <Failed to communicate with proxy: myproxy/myproxyport. Will try connection target_url/443 now.
    java.net.ProtocolException: Server redirected too many times (4)
         at weblogic.net.http.HttpsClient.makeConnectionUsingProxy(HttpsClient.java:433)
         at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:358)
         at weblogic.net.http.HttpsClient.New(HttpsClient.java:527)
         at weblogic.net.http.HttpsURLConnection.connect(HttpsURLConnection.java:239)
         at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:136)
         at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:187)
         at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:124)
         at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:121)
         at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:866)
         at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:815)
         at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:778)
         at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:680)
         at com.sun.xml.ws.client.Stub.process(Stub.java:272)
         at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:153)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:115)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:136)
         at $Proxy30.queryRange(Unknown Source)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)
         at $Proxy31.queryRange(Unknown Source)
         at com.volga_dnepr.wsi.fusion.model.sched_mov.SchedMovSoap12Client.main(SchedMovSoap12Client.java:54)
    Although if i switch off proxy server everything works perfect (both HTTP and HTTPS web-services).
    What could be the problem with?

    Hi Kenneth,
    At the moment, SALT does not support the configuring of an outbound proxy server. I suspect you could use a transparent proxy server, i.e., a proxy server/router combination that proxies outgoing requests, although this isn't something we have tested. My suggestion would be to open a support case and ask for this enhancement. I think it is a reasonable thing for SALT to support.
    Regards,
    Todd Little
    Oracle Tuxedo Chief Architect

  • Calling (HTTPS web service) in sharepoint 2013 workflow (SPD)

    I am using SharePoint 2013. I have created a list workflow in SharePoint Designer. I know there is an action "Call HTTP Web Service". Is it possible to access some webservice with authentication (username and password)?

    http://msdn.microsoft.com/en-us/library/office/dn567558%28v=office.15%29.aspx
    the OData formats support communication with anonymous web services as well as with those protected by various types of authentication. In short, you have full control over the request and response for each service call. This allows you to use a series of
    activities within a workflow to first authenticate using one service and obtain an OAuth token, and then include that token in future requests to services secured using the
    OAuth 2.0 protocol.
    http://blogs.msdn.com/b/kaevans/archive/2009/03/10/calling-sharepoint-lists-web-service-using-wcf.aspx
    <?xml version="1.0" encoding="utf-8" ?>
    2: <configuration>
    3: <system.serviceModel>
    4: <bindings>
    5: <basicHttpBinding>
    6: <binding name="ListsSoap">
    7: <security mode="TransportCredentialOnly">
    8: <transport clientCredentialType="Ntlm" />
    9: </security>
    10: </binding>
    11: </basicHttpBinding>
    12: </bindings>
    13: <client>
    14: <endpoint
    15: address="http://sharepoint/sites/HSC/_vti_bin/lists.asmx"
    16: binding="basicHttpBinding"
    17: bindingConfiguration="ListsSoap"
    18: contract="ServiceReference1.ListsSoap"
    19: name="ListsSoap" />
    20: </client>
    21: </system.serviceModel>
    22: </configuration>http://www.tonytestasworld.com/post/2009/06/04/How-To-Authenticate-and-Use-SharePoint-Web-Services-in-an-FBA-SharePoint-site.aspx

  • Call HTTP web service action not allowing HTTPS in SharePoint Designer 2013.

    HTTP works perfectly in browser and in workflow.
    HTTPS works perfectly in browser and hangs in workflow.
    Others having this issue have been advised to use OAuth2. OAuth2 is not an option without HTTPS, you're passing authorization tokens around in plaintext. This is not an acceptable solution.
    Please advise.

    It says HTTPS web services will have an Issue with the SharePoint Designer. 
    Thanks, Parth

  • Workflow 2013: Call HTTP Web Service

    Is It possible to use the Call HTTP Web Service action in Workflow 2013 to make it send
    a document from a document libary with meta-data to ohter system webservice that I have implemented ?

    Hi,
    I have seen your similar thread post
    here, please check if Steve's reply is helpful.
    Thanks
    Best Regards
    Jerry Guo
    TechNet Community Support

  • How to Loop through another list and update a column with SharePoint Designer 2013 Workflow

    Hi,
    I am trying to get my head around the new 2013 Workflow Engine and SharePoint Designer 2013 Workflow Text-Based Designer.
    I have two lists.
    List A has 2 columns: Title, Completed (Yes/No)
    List B has 3 columns: Title, LookupListATitle, Completed (Yes/No)
    All the 2013 Workflow components have been installed and configured and I am selecting the 2013 Workflow option in SPD
    I am trying to set off a 2013 Workflow when an item in List A is edited to Loop through List B and select items where the LookupListATitle column's value is equal to the Title value of the current item, and set the value of the Completed column for those
    items in ListB to "Yes".
    I have the Workflow configured like this:
    Stage: Stage 1
    IF Current Item:Completed equals Yes
    Loop: 1
    The contents of this loop will run repeatedly while: ListB:LookupListATitle equals Current Item: Title
    Update item in ListB. 
    (The dialog options for the update item action as follows:
    List: ListB
    Field: Completed, Value: Yes
    In the Find the List Item section
    Field: LookupListATitle
    Value: Current Item: Title)
    Transition to stage
    Go to End of Workflow
    When I update an item in ListA and set its Completed column to Yes, I would expect the Workflow to find all the items in List B where the Lookup column is equal to ListA's Title (there are 2) and update their Completed column to Yes. But it doesn't work.
    When I look at the Workflow Status it says the Internal Status is "Canceled" and the information pop up has the following alien language (and may be truncated):
    RequestorId: 95f03b62-8956-ac14-c5cf-dc98c89c589c. Details: System.ArgumentException: Invalid JSON primitive: Item001. Parameter name: value at Microsoft.Workflow.Common.Json.JXmlToJsonValueConverter.ConvertStringToJsonNumber(String value) at Microsoft.Workflow.Common.Json.JXmlToJsonValueConverter.ReadPrimitive(String
    type, XmlDictionaryReader jsonReader) at Microsoft.Workflow.Common.Json.JXmlToJsonValueConverter.JXMLToJsonValue(XmlDictionaryReader jsonReader) at Microsoft.Workflow.Common.Json.JXmlToJsonValueConverter.JXMLToJsonValue(Stream jsonStream, Byte[] jsonBytes)
    at Microsoft.Activities.DynamicValue.ParseJson(String json) at System.Activities.CodeActivity`1.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor
    executor, BookmarkManager bookmarkManager, Location resultLocation)
    Unfortunately I don't have access to the server, logs etc.
    I would love to find some tutorials, or any books on SharePoint Designer 2013 in general and Workflows in particular but my searches haven't turned up much so far apart from a pre-release Beginning SharePoint Workflows which is in its very early stages and
    not much help yet.
    Can anyone give me some guidance on how to set up While Loops to iterate through a related list using SharePoint Designer 2013?
    Mark

    Hi,
    I understand that you wanted to update the items in the other list (Participants) where the Course equals the Current Item.
    You need to use “Call HTTP Web Service" action and “Build Dictionary" action to get the Maxid and then loop Participants to update the items.
    You can follow the steps as below to achieve what you want:
    Create a custom list named Courses, add columns: Title(Single line of text), Course ID(Single line of text), Course Finalised (Yes/No).
    Create a custom list named Participants, add columns: Title(Single line of text), Course(Lookup), CourseFinalised (Yes/No).
    Create workflow associated to Courses, start the workflow automatically when an item is created or changed.
    Add conditions and actions:
    The HTTP URL is set to
    https://sitename/_api/web/lists/GetByTitle('listname')/items?$orderby=Id%20desc and the HTTP method is set to “GET”. Then the list will be order by Id and desc.
    Then if Course Finalised is equal to Yes, the CourseFinalised  of the associated items in Participants will be updated to Yes.
    More information:
    http://sergeluca.wordpress.com/2013/04/09/calling-the-sharepoint-2013-rest-api-from-a-sharepoint-designer-workflow/
    Thank you for your understanding.
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • User Profiles option missing from SharePoint Designer 2013 workflows

    I noticed the User Profiles is missing as a Data Source option in the SharePoint Designer 2013 workflow platform (see image); whereas, it exists in the SharePoint 2010 workflow platform. Is there a way to connect this feature in SharePoint 2013 workflows
    by registering it or configuring through Workflow Manager? If not, what is the new approach in SP 2013 to call User Profiles services?

    Hi,
    Based on your description, you want to use user profile in SharePoint 2013 workflow.
    In SharePoint 2013 workflow user profiles is missing, if you have to use the user profile, you can create a SharePoint 2010 workflow, and use Start a List workflow action in 2013 workflow to start the 2010 workflow.
    The article below is about How to start a SharePoint 2010 Workflow within a SharePoint 2013 Workflow Using SharePoint Designer 2013
    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-start-a-sharepoint-2010-workflow-within-a-sharepoint/
    And in SharePoint 2013 there is an approach to user profile, you can add the action call http web service to get the information of user profile.  
    The article below is about how to use call http web service in SharePoint 2013 workflow.
    https://msdn.microsoft.com/en-us/library/office/dn567558.aspx
     Best regards
    Sara Fan
    TechNet Community Support

  • Can we migrate SharePoint Designer 2013 workflows from DEV to UAT to Live without any issues? Any bad experiences?

    Hi there,
    1. Can we migrate SharePoint Designer 2013 workflows from DEV to UAT to Live without any issues? Any bad experiences?
    2. When we deploy these workflows - does IIS need a restart?
    Thank you.

    That depends, did you create reusable workflows? Those can be deployed to another environment (of course depending on dependencies within the workflow itself)
    Kind regards,
    Margriet Bruggeman
    Lois & Clark IT Services
    web site: http://www.loisandclark.eu
    blog: http://www.sharepointdragons.com

  • Call HTTP Web Service Retries Every 1 Minute

    I currently have a SharePoint 2013 workflow setup. This workflow calls an HTTP Web Service using the HTTP Get Method. The web service takes over a minute to execute what it needs to and respond. The workflow retries calling the web service every 1 minute
    if it doesn't get a response back. This is causing issues as the process is already running and doesn't need to be run again. Is there some setting or response/request header value that I can set to prevent the workflow from retrying the web service call every
    minute?
    Thank You,
    Jon

    Hi,
     As per your posting, I believe there is no direct approach in the workflow to check the web service status for every call. 
    Let me try to work on that and try to give you the appropriate solution.
    Sekar - Our life is short, so help others to grow
    Whenever you see a reply and if you think is helpful, click "Vote As Helpful"! And whenever you
    see a reply being an answer to the question of the thread, click "Mark As Answer

  • How to call HTTP web services in an Interactive Form?

    Hi all,
    I am using Adobe Livecycle Designer currently in a trial 8.2 version.
    I need to invoke an HTTP Web Service (non-SOAP) in an Adobe Interactive Form. The Net.HTTP method does not work due to security reasons. The error message I get is:
    (german)
    " NotAllowedError: Sicherheitseinstellungen verhindern den Zugriff auf diese Eigenschaft oder Methode.
    Net.HTTP.request:28:XFA:form1[0]:mysubform[0]:Region[0]:change"
    In english this translates to: "Security settings prohibit the call of this property or method.
    And indeed the "Javascript for Acrobat API reference" includes the following note:
    "Note:This method can only be made outside the context of a document (for example, in a folder level JavaScript)."
    So this method seems to be excluded from use in an Adobe document, e. g. in an interactive form. But why is it then listed at all? Is there a way to call HTTP Web Services in an Adobe Interactive Form by somehow branching out the call outside the document itself? Of course I do not want to call a SOAP service which then calls the HTTP Web Service ;-)
    Is there any other way to invoke HTTP Web Services in an Adobe Interactive Form?
    Thanks a lot for your response!
    Regards
    Christoph

    Hello Kavita,
    patterns are not processed during editing. If you can't use the default behavior of the numeric field when a character is entered (handled when the user finished editing), you could use scripting to process input. Depending on what you want to do you could use the exit event or the change event.
    A change event has a property called "change" that caused the event. You could try "xfa.host.messageBox( upper(event.change) )" in FormCalc to show the characters in upper case.
    But, you should go this way only if the patterns for editing and for display and validation scripts can't be used in your case.
    Best regards
    Juergen

  • How to invoke HTTP Web Services in an Adobe Interactive Form

    Hi all,
    I am using Adobe Livecycle Designer stand-alone (without Netweaver integration), currently a trial 8.2 version.
    I need to invoke an HTTP Web Service (non-SOAP) in an Adobe Interactive Form. The Net.HTTP method does not work due to security reasons. The error message I get is:
    (german)
    " NotAllowedError: Sicherheitseinstellungen verhindern den Zugriff auf diese Eigenschaft oder Methode.
    Net.HTTP.request:28:XFA:form1[0]:mysubform[0]:Region[0]:change"
    In english this translates to: "Security settings prohibit the call of this property or method.
    And indeed the "Javascript for Acrobat API reference" includes the following note:
    "Note:This method can only be made outside the context of a document (for example, in a folder level JavaScript)."
    So this method seems to be excluded from use in an Adobe document, e. g. in an interactive form. But why is it then listed at all? Is there a way to call HTTP Web Services in an Adobe Interactive Form by somehow branching out the call outside the document itself? Of course I do not want to call a SOAP service which then calls the HTTP Web Service
    Is there any other way to invoke HTTP Web Services in an Adobe Interactive Form?
    Thanks a lot for your response!
    Regards
    Christoph

    Hi,
    back again, had to handle other issues, sorry.
    Just to get a little more concrete. The condition depends on the context node attributes. So if an attribute is initial, it's field should not been shown, if it's not initial, it should ne shown. There are 6 context attributes and therefore 6 fields in the form. How can I get the attributes' value?
    And can I put them into the same subform or do I have to create 7 (6 conditions + blank-condition) subforms?
    I put the fields (textfield and context node value) that should be shown depending on conditions in a subform. So how can I adress this subform?
    I'm not so familiar with JavaScript, so please help me. I need something like:
    if (context_node_attribute X is initial) {
             subform_1.presence = "hidden" ;
    I tried it with
    if ( ARB_STUNDEN.rawValue != null) {
         Beratungsstunden.presence = "hidden" ;
    but it didn't work....
    Thanks,
    Tan

  • Edir sharepoint designer 2013 workflow xaml

    How to edit sharepoint designer 2013 workflow xaml
    I was able to edit it by exporting wsp and cab and modified xaml but how to again create wsp of this modifed cab.
    I took reference of
    http://netwovenblogs.com/2013/12/10/export-sharepoint-designer-2013-workflow-xaml/
    MCTS Sharepoint 2010, MCAD dotnet, MCPDEA, SharePoint Lead

    Hi Amit,
    According to your description, my understanding is that you want to  re-create a .wsp file after modifying workflow xaml file from the cab file.
    To achieve it, you need to install a zip software utility that supports cab files, like IZArc. Then re-create a .cab file using the tool and change it to .wsp file.
    More information, please refer to the link:
    http://academy.bindtuning.com/how-to-manually-edit-a-sharepoint-wsp-file/
    I hope this helps.
    Thanks,
    Wendy
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Wendy Li
    TechNet Community Support

  • Send Edit Items URL in E-Mail Using Sharepoint Designer 2013 WorkFlow

    Hi,
    I want to Send the URL of Edit Item List using SharePoint Designer 2013 Workflow
    I m Using [%Task : URL%] Then it return the internal URL -- 
    http://SP2013/Sites/MySites/HelloSites/Lists/Tasks/DispForm.aspx?ID=359&ContentTypeId=0x0108003365C4474CAE8C42BCE396314E88E51F
    But i want in  AAP URL for edit list items  such as 
    http://Hello.com/Sites/MySites/HelloSites/Lists/Tasks/DispForm.aspx?ID=359&ContentTypeId=0x0108003365C4474CAE8C42BCE396314E88E51F
    Any one can suggest me please.
    Thanks 
    Rajesh

    Hi, 
    I'm assuming you made your site as internet site (public facing).
    In that case you might site desired output. If not you can think of replacing text
    i.e SP2013 = hello.com
    Thanks,
    Vivek
    Please vote or mark your question answered, if my reply helps you

  • How To Access HTTPS Web Service  in Application Module

    I need to know how to access HTTPS web service in application module.
    If you can provide the tutorial or guidance to achieve this really appreciate.
    Thanks
    Sameera

    Use the Web Service Proxy wizard in JDeveloper to create a class that calls your Web service, and then call this class from code in your AM.
    http://docs.oracle.com/cd/E16340_01/web.1111/b31974/web_services.htm#CJAHGIEF

Maybe you are looking for

  • Adding new tab in MIGO Tcode at item leveli

    HI all, My requirement is to create a new tab at item level in MIGO Tcode. In that tab I have to add some z-fields, here the point to be noted is these custom fields data needs to be saved into a Z-table along with the goods receipt number which is g

  • Problem with Delta IP on 0TCT_DS23 in Production system

    Hi all, I'm encountering a quite tricky problem: I'm currently working on the 0TCT_DS23 Datasource, with the technical content cube. I can run an init infopackage on our 3 environments, Dev, Quality and production. Same for full packages. But when I

  • How do I disable the setting of the jbo.ApplicationCookie

    Hi, I am using BC4J with struts and have all my action mappings set to "stateless" releasemode. A cookie is still being set with the name "jbo.ApplicationCookie" and a value of "-1". The problem I'm having is that I'm working in an environment with m

  • Conversion to Excel file??

    How do I covert a PDF to a working excel fiel?

  • Software issue: Renaming and file paths

    Recently while cleaning up my MBP 15" I renamed my hard drive, and now all my paths are messed up and i cant seem to revert, I dont know if this has anything to do with key chains and the like, because I am an extremely new mac user. If anyone knows