Hi good evening. Everybody my name is Bill Digregorio. I'm the director global director of project professional services at Bentley. An welcome to our first pathways, administrators special interest group meeting of 2020. We're kicking off the new year with a new medium if you will. We've been using a Adobe Connect 4 years we have switched over to on 24. So. With this, it's a little bit of a learning curve for all of us this is my second presentation. Using on 24 the first one was the morning cig. Earlier, today, so just a couple of things before we jump into the actual. Sigma meeting uh what I want to do is kind of go over a little bit of what on 24 is and what you guys. May want to enable so you can. See and have a good experience so you should notice uh some icons down towards the bottom. So you'll want to enable the slides button the slides button will actually show you the slides of the. Main power point that I'm using? Uh we also need to select the media player. For portions of the. The rest of the presentation. For Q&A enable kewene you'll be able to ask some questions. You may not see everybody's questions you may only see your own. But if we respond to the question with an answer I believe everybody then sees. Uh the question and the answer. So again we're still learning about this so. Um. You know bear with us this will probably improve as we go on, but those are the 3 main buttons. There's a A resource list. That gets you some links to some Bentley resources communities, Whatnot Speaker BIOS a little contact us if you needed that. You could refer colleague. There's a survey survey is more related to the presentation itself. Not only the content, but also the delivery. And then Twitter and Visit us. So again for this part, you'll need the slides for the main part of today's presentation. You will need the media player. A couple of other helpful tips or something you should be aware about so this is a this is a stream through your computer? If you're having issues with the video for example, there's not much you can do other than maybe refresh. Are committed streaming? You probably going to make sure you're using your headphones or some sort of speaker Phone. On 24 recommends a hard wired Internet connection is bandwidth intensive now. I'm on a Wi-Fi actually my Home Office. In my Home Office this morning didn't have a problem. I'm not anticipating any problems, but you know if you can be hard. Wired I suppose that's better. If you're not seeing the slides advance in the slides window recommendation is to hit F5 refresh. Like to see if that brings it back. So. Moving along. Uh. Again, welcome quick agenda here, so did our little on 24 overview. We have master Zach Kerr. With a practical system architect joining us now. Many of you probably familiar with that disease resides in Melbourne. I believe that is currently in Japan at the moment. So happy to have back really appreciated him this morning because that presentation was 10:00 o'clock. Eastern Time, which was midnight for where Zack is located. Great presentation good feedbacks on anticipating the same. Zach's presentation is going to be about 30 to 35 minutes, then will swing back through a review of what's in the chat window through any questions. And then I'm going to give a an update on accelerate and then I'll close with some comments about upcoming 6. So without any further ado, Zach I'm going to turn it over to you, I'll go on mute. I'll monitor the chat window, a bit. And uh. Enjoy the show. Alright fantastic. Thank you Bill and hello and Happy New Year to everyone and greeting for whatever time of day, it is. I am going to start. Uh sharing on my screen, I'm going to give it sort of. 10 to 15 seconds here. Just to make sure that it's coming through and then if I don't come bill. Let me know if people are. Talking in the chat about not being able to see or hear anything but. If I don't hear anything like that, then. Cool then I will I will press on it still seems to be initiating. The connection at the moment so. I'll just give it a little bit of time here. And again, you'll want to make sure you've got from a user perspective the media player. Window open. Again, the live view is giving you the my PowerPoint. My PowerPoint is separate to what vax using so you want to make sure you have both of those views enabled. So I'm still getting a uh. Alert there we go that's more like it. So I should be sharing my screen now. Hopefully everybody can see that again. Let me know if you can't end. We will try and sort that out, but from my end. It looks like everything is working and we are ready to go. So I will press on yeah, exactly my perspective, I can see you just fine and there's nothing in the chat window, so if anybody is having a problem they haven't posted it. Alrighty cool. Perfect so thanks for that bill as bill said before today. I'm going to be looking at copying documents. And metadata from SharePoint into projectwise. Which is something that you know we've done with a few users and had request with help with for more users. Fully, the information in here is useful for everyone. Before we jump into it, I will. Go over the tools that we're going to be using today. So the first one is. The PowerShell Module PWPSDABI think most people are probably familiar with this by now. This this actual script file here will be uploaded an be available as part of the on demand. Version of this presentation, which should be available. I'm told in a couple of hours after this presentation's finished. So you will be able to get this script file from there and go to all of these links that you see, there. So if you're not familiar with Peter PSDB. There is a link to the communities page here and then there's also a link. To the PowerShell Gallery where you can get that. And then the other PowerShell module. I'm going to be using is this SharePoint. PNP PowerShell, now mine is the. Online version there are a couple of different versions of this so I'm actually going to. Go to this link here and we can see. What I'm talking about what you will want to do is go and get the version of this that is specific to. Your implementation of SharePoint, so there is 1 four 2013 through to 2019. And then another one specifically for online so I'm using the online version as part of Office 365. So I have this online version of this module. But if you have a different version of SharePoint go ahead and grab. One of these other ones you don't have to worry. You shouldn't have to worry about the command. Let's that I'm showing today being. Different in another version of this module. From what I have looked into with these the only difference is on the back end. These are built with what's called the share point client side? Object model. And the version of that object model is is different on the back end for each one of these modules. But the command let's that they published to the module should be should be the same. Now in the past, I have used the online version to connect to a version of SharePoint that was 2013. Uh some things worked some things didn't somethings kind of half work so you really do want to try and get the. Correct fashion if it's for whatever your implementation of SharePoint is. But they're all downloaded and installed the same way here. So that is the other piece that I will be using so I'm going to go ahead and import. Both of these modules and we will see a bunch of tax down here. There are a lot of SharePoint Command. Let's you also get. That warning about unapproved verbs for both of these modules because they both have unapproved verbs and number again just a warning. Absolutely no issue, there. OK. So I mean, the other resources that I'll be using they're not mentioned up in here obviously I have. Projectwise Datasource setup, which is over here. I'm just going to be getting documents from this doc code testing folder. I've got these 4 documents here they are. Just word documents in a PDF and they have some basic attributes. And then I also have my destination. Share point site setup. Now this is just a SharePoint site. I use for demo purposes and testing purposes so there is not a lot. Going on here. We can check out the site content and you'll see that there's A. There's really nothing apart from a couple of lists and document libraries that are here. Seems to have gotten stuck. Loading halfway through that just refresh this. And if it doesn't workout that's fine, we can. We'll come back to it later in the presentation, we should see stuff that. But for now, you'll just have to trust me that there's not a lot going on in this SharePoint site. And we got out, quick launch on the side here and then start site contents loaded up we would have seen that there are. There are a couple of document libraries and a couple of generic lists so that rounds out our resources that we will be using? We have imported our PowerShell modules, so now I'm going to go through and set the variables for the script. 1st is I'm going to create this credential object here. Now I am just creating one credential object because. My Bentley account here is used to authenticate both against Projectwise, an share point so if you have a different method of. Authentication against share point that you do then you do for project lies. When you go through and do this yourself, you may need to create another credential object or you can. Specify your username and password to the. Uh the PWPSDID Command Let's the way you normally would. But for me, I'm just creating the one I'm going to use that against both. I have my share point URL which is exactly the same as the URL. That I have up here so it just takes you to this. Home or like splash page of the SharePoint site. My working directory so I specified a working directory. This is not a not my projectwise working directory. This is for when I upload documents to SharePoint. I need an actual file on windows to do that. I can't sort of stream it directly from projectwise into share point so I have a working folder where I am. Exporting those documents from project wise and I use those files once they're sitting on my windows machine to then. Upload into share point now I do think that might be another way to get around this, if you were going to be using say WSG calls or something where you could potentially stream the file directly into SharePoint from. Projectwise at time of uploading. But I'd for today. We're going to stick with PWPSDABI think that is. The most widely known, and used solution here so. Will stick with that. The next is we have our list, and library names were actually going to be creating 2 different lists. I guess you would, in SharePoint. Now apologies if there are any share point admins of Brewers here and I'm getting this wrong, but from my. From my heart basic understanding of share point you have different types of of pages that you can create. This first one, is the generic list so that's basically rows of metadata. And then we also have document libraries where you have the same rows of metadata, we can also associate files with. With those so I'm going to be creating one of each of these so that we can see just a straight metadata update. And then also a files and metadata update. And then I have my daughter, Phillips defined here and again if you're familiar with PWPSD. We've probably done that. Many many, many times, so I'll go ahead and define those. Now the next thing I'm going to do is connect to both share point and project wise going to go and run this. While we talk about it. So for the project 1 project wise wine. I'm guessing everyone is pretty familiar with that at this point. For the share point one, I'm using this connect PNP online command, but I am giving it my SharePoint URL. And passing it my credentials object and then I'm also activating the return connection switch So what that means is. It's going to return a PowerShell object basically that represents my SharePoint connection. And that's important because later on when we call other SharePoint commandlets using this module. We're going to actually pass. I'm locked out SharePoint connection. And that's kind of if you've ever used the client side object model for SharePoint. That's kind of the way that works you pass your connection through. Whenever you make a call against it there. So we can see down the bottom in the console window that I have successfully connected to my SharePoint site here. I am still waiting to log into projectwise seems to be taking at the time at the moment. But I expect that to to complete successfully Sir. Once that is done, we will press on and you might notice here that. Fish share point I'm just passing my full credentials. Object 'cause That's what it expects but for my project. Wise, one, I'm actually giving it my. Credentials dot username and credentials dot password because that's the way that the new PW login command let expects those. To be passed. So hopefully this completes in a few moments and I can go ahead and do this, but once we've successfully. Connected to projectwise. There we go great with successfully connected. So the next thing that we're going to do is I'm going to export my will not export. Sorry I'm going to return my document so I'm using get PW documents by search. And I'm just giving it that folder path that I showed you before. Over here. So I would expect to see these 4 documents returned. I am getting their attributes and every piece of information, I can get about this using the slow switch. And it looks like we've got our four documents returned to check the console window down the bottom here. That's what we would expect and then what I'm doing here is I'm sorting using these documents to get uh. List of unique properties and attributes that are returned so the properties in my document properties so. Looking at things here, like you know the queered the description. The document updater and the update time the file name etc. All of these things. And this is because uh I don't actually have you may have noticed before in share point I don't actually have any? Lists or libraries to put this information into at the moment, so I'm going to go through and create those as. Part of this. And in order to create the share point fields or the columns where I'm going to store that metadata. I need to pass it the name for that column or field. I believe it is in SharePoint. And the type of data that's going to go in there, so I'm going to be using these 2 pieces. Of information safe. It worked for state and then it's a string. To create those columns in share point. Similarly, with the attributes. I'm going to create a column for each one of these attributes you could do a similar thing where you doing the? The name of the type I'm just going to give these the default type of of a string in SharePoint. So we've successfully returned at documents, which is great now. I'm going to go through and make sure. That we have an area in share point where we can put these. So I'm going to be using the new PNP list commandlets here. And I'll go through both of these at the same time, so it wants at title of the list. So I'm giving it. The list name and the library name 'cause. We're going to create both at the same time. Might actually go run this while we talk about it. Then, as a template so these are both are standard templates that are a part of Uh, I believe. Every checkpoint to implementation so you have a generic list, which is the Rose of metadata that I mentioned before. And then you have the document library, which is also a list of metadata. But you are able to associate files with that and there's a folder on the back end and share point as well. Where you can store a store that information. In both of these I'm activating the on quick launch. Switch here, which means. When I refresh this. We can see that they show up on the quick launch on the side here. We don't have to go into the site contents or? Enter specific URL or anything to get to them. We can just click through to them like that. So that's great and it looks like they have both been created here. And they should both be totally empty, which we will confirm. And then this is what I was talking about before I'm actually passing through that command let my SharePoint connection. Both of those were created successfully which is great. We saw that over here and. And it's really taking its time to load up for this one. Choose an unfortunate will leave that going in the background. While we well, we continue over here. So the next thing I'm going to do now, that I have these lists and I wish I was able to show you this. Is they don't actually have any any columns for them? They've got a title column and I think name column. But that's about it. There's no other metadata. That's associated with these lists at the moment there pretty much blank. So what I'm going to go through and do is. Create this uh. This mapping here this time mapping and this is basically be cause. A you know what's returned is aguid type in projectwise? Is a grid with a capital G in SharePoint. A string in Projectwise is taxed for the capital T in in share point so. I'm just mapping these tots from projectwise into the share point field types, the corresponding SharePoint field types. And this is a good opportunity to mention that the. Uh, which you may not be used to, if you're if you've only really if you used to using only PowerShell. Is it the SharePoint module? Is case sensitive so keep that in mind every time that you use these? I've had a couple of instances where have spent a very long time trying to figure out what is going wrong and why something is not working? And in the end, it was just a letter that was not capitalized that needed to be or something that was capitalized that shouldn't have been. So do try and keep on Top of that, if something is not working just copy paste. The uh. The actual name of the parameter or something that you're trying to update because it may just be an error. And not having the correct letter capitalization on that just keep that in mind when you're using the SharePoint module because it? Is different from Peter VPSTAB? Which is not not case sensitive there? Right still hasn't loaded up let's refresh that. Um what I will do as well, if I will show you. There's a link in here that you can go to, if you have other type definitions that you want to check out. For the share point fields, this will have a whole list of them here. In case you want to you know you have different types in projectwise that you need to copy over into these SharePoint lists. These are the This is the list of types that it accepts yeah. OK so with that done, I am. Going to in these next 2 blocks here. Can I go and hit? Ron and we can talk about it while it's running. I'm gonna use those properties that I returned before to go and create these fields in share point. So I'm not doing it for all the properties that are returned. I'm just doing it for the name description file named Akwid. The document update date and the document you RN. So I'm going to create fields to each one of these in in SharePoint. As far as that document properties are concerned and then I'm going to do the same for all the. Environment attributes that are in this environment again, you could do that selectively if you wanted to. You don't have to do with everything you may actually have a list that already exists that you just want to ride into. But to achieve these I'm using this ad PNP field. Command let it wants the name of the list so passing it to list in the library. We're doing this. Twice once for each lists. It wants the display name of the field so that's what's going to show up at the Top of the column? This is the column header and then it also once the internal name now. This is another gotcha with share point that I didn't know not being an expert. Is that they can use different internal names for these columns than they used for the display name so? I've also been caught out without before I am specifying them to be exactly the same here for simplicity sake. 'Cause when you go to update them. They they use the internal name. So you know you could be passing it. The display name and it's not the same as the internal name. So you need to, you need to make sure that those are the same. And then I'm giving it the type which I'm getting from that type conversion table. I am adding it to the. Default view, which means that it's going to show up as one of the default columns. He also, if I can refresh this now, hopefully. There we go great, so we can see in the SharePoint demo. Let's now that all of these columns have been added here, adding them to the default. View means they show up in here and I don't need to know right click an item and go to properties to. To see the the definition of all of these fields. We should see the same in the demo library here. Exactly the same list. Of columns that we have which is great. That's what we wanted to see. So they're all added to the default you and that's all worked there, which is fantastic. And then again, it was just the same with the attributes here. So. Now we have successfully created our target end point here, we are going to go an actually copy this daughter over. So for the first case, we're going to do it to the generic list, which is just the metadata rose, so this one is not join your files. So I will go ahead and run this while we talk about it. So what I'm doing is I'm looping through each document and I am creating a hashtable Here of the metadata that I want to pass to that. Generic list. So I have the title, which is actually a generic field for this SharePoint. Generic list, which I'm just populating with the document name. And then for the document properties that I added, before we have named description filename quid update Dayton you RN. So that's my properties that I want to copy over and I'm getting those from the document object directly. Then down here. I am adding an attribute for each attribute in the environment. I am adding to this list of metadata. So we can actually return. This list of metadata for the Los runs so you can see what's included in that. So this is what I would be. Expecting to copy over. To mix of environment attributes and document properties. And then once that list of metadata is defined. I am using this ad. PNP list item for the generic list so. I am going to go through I need to give it the list name, which I've done. I am giving it the values so this is the metadata values basically that it's asking for. So I passed the hashtable here. And then I also pass it my connection. And I am piping this to out Null Becaus. What was happening? Infrequently and you know, not not reliably for me. Sometimes I was getting a warning message that. That something hadn't worked when and in fact, everything had worked. But it was killing this document loop here, so I would get this warning and it would exit out of this loop. I've used out Mel hit just to suppress that said the loop keeps running through because everything was succeeding. You could use a silently continue or continue or something like that. I've just used this one 'cause that's what I put in there when I wrote it. But. That actually completed successfully so if I head back over to share point now and check on how demo lists. We should see that we have our four documents in here, which is great. These match. Exactly what we have. Projectwise over here. We can see that these attributes are all. Random strings of 3 characters each and if we go across 2 owl. Attributes over here, we can see the same thing. So that's great we have successfully think that information over to share point. Now we will do the same thing. For the document library said this includes the files so again go through and run this. I will show you my my working Directory Fest where they're going to get exported so this is this is. Empty at the moment. And I'm going to go through and run this. So we do exactly the same thing with the metadata where we build out our properties and our attributes. Send the title field up here because that's not included in the document library SharePoint list. And then I'm coming through an I am copying out these documents. I'm using these check out PW documents commandlet. Just passing it the document. I am activating the copy out switch, saying that I want to copy it out. And I am specifying the export folder, which is in fact, a copy out folder. As my working directory. Activating my no references switch here. Because I don't want any references copied out. It's not really an issue for these documents because I don't have references anyway. But if I flip back over here, I should start to see. These documents being exported here or copied out into my local working directory. And then once there, and now I am using this ad PNP file. So it's different from the one that we use for the generic list, which is add pain P list item. We're using this ad PNP file. To add files to a document library so we are giving it the path, which is my working directory and then the file name. For each one of these these documents, then I'm giving it the folder in SharePoint that I want to. Upload that too, which is our document library in this case. Passing it the values are metadata values, so that we get all of that good metadata information updated as well. And then passing it to share point connection. So it looks like. That's completed so if I come back over to share point and I check on how. Tomorrow library, I think actually need to refresh this. And we can see that. We have our four documents like we were expecting. All that metadata is copied over successfully as well. And we actually have these files here, so I could click on this file. And open it up. I can see that it is not empty PDF here. I could open up one of these as well, let's open up this uh. AFS GGG. Document Name Hill. So that's going to open up. We can see that I've gone through and made made some changes to this already. In previous runs in test runs and we're actually going to update this later on in the next step. But all of this information is here, and we have now successfully copied over documents and metadata from Projectwise. Into SharePoint. Which is great, so now that that is done? And we've handled that case of copying things over in the first instance, I am going to go and. A simulate some actual work happening on these documents in Projectwise and then. We're going to handle the case of updating that information in SharePoint, with the most recent information in Projectwise. So. This in this region here when you look at this is just simulating actual work. You guys don't have to do this and you certainly don't have to do it. In this way that I'm going to do it here. I am actually going to perform a managed export. To my working directory here. And edit the file. And then check it back in. And then I'm going to update the attributes. And then update those attributes in Projectwise, now I'm going to comment out. This attribute section here because what this does is generate a random string. For each one of those attributes and I'm going to flip over to this one which. Which generates a random? String still but of of numerals rather than than cactus, yeah, so will be able to see easilly those have changed rather than having to track the exact. The exact character sequence of those random integers so I'm going to go through and hit. Run on this. So what I would expect. Great so one document has had a manage export done. This AFS GGG so this is the one we looked at before. Great so. Add second round of changes full owl live demo. Yeah, and I'm gonna save this uh. It won't let me say that with the same name because it is. Technically read only so I'm going to say that with a different name. And then I'm just going to come through and delete this. Is the file with this one so that should show? Our changes that and if we were to flip back over to projectwise at this point and refresh. We'll see that this, this document is currently locked because it is exported out to me. So I'm going to go ahead and hit OK on my little prompt here. Which I've just coded in here for people that are interested in that? To give me some time to go and update that file so click, OK, when this document is being edited. Right I'm gonna go and click OK. And then it should check that back into project lies. And then update the attributes. So when I get the alert for the next document. That's been exported will flick back over to Projectwise and confirm. That these attributes have been updated. It is performing a little bit slower than I would expect the moment I think maybe My Internet connection is not so great at the moment. So we can see that that has happened or on to the next documents or 5 is to come back over here and refresh. I can see that this document is now check back into project Wise. And I can see that the attributes have been updated with integers rather than with. Characters here. And the town next document is locked. So that's great that's exactly what I would expect to see. I'm actually not going to bother are gone from now. Working directory now, too because it's been uh. It's been copied back in to predict Wise. I'm just going to go through and hit RK on all of these next ones when they come through. I'm not going to bother editing file content. We can just show that that's worked with that one example file. All of these will have their attributes updated, though so. I got 2 more to go through so that's one. And one last one to go off to this. Great and again, you do not have to do this. When you're actually doing this your cells. I am just simulating some work going on now. So we should be able to see that they are all checked back in now they've all had their attributes updated. Great we have simulated some actual work on these documents now we are ready to go and update them. In uh in SharePoint. So this next part here. I'm going to do basically the same thing that we did. At the very beginning, which is to return the document. Because they've been updated in Projectwise, so I need to return them again because the objects that I have in memory here now out of date. So again I've got my 4 documents returned which is exactly what I have expected there and I am. Also returning the list items in SharePoint, using get PNP list items, So what this does here is. If I return this variable. We can see that for each one of these lists items. I've got my ID titled Grid there. Actually, a bunch of hidden properties that are returned without as well that you can go and check out if you want to. That the reason that I'm doing that is be cause when we run this update block down here. This set PNP list item, which is like an update. This basically equates to updating the list item it once and identity of the item to update which is this. ID here. So I'm using this lift items as a mapping. And I'm going to use it to match the document grid in Projectwise against the document grid that we have recorded. In SharePoint and then returned this ID value here, so that I can tell this command, let the correct document to update. So that's done, we're going to go through and run this block here and update these. So again I'm doing a similar thing I'm I'm not going to update all the document properties. I'm only going to update. The update date 'cause That's the only thing that has changed and then I am going to Add all the environment attributes back into that as well because we have. Updated those. So I lifted metadata here should be shorter, it should really just be our environment attributes. And the document update date. Which is great and then we just pass this information into our set PNP? List items so we give it? The name of that list. We give it the identity, which is again using our mapping over here to get the ID. Uh we give it our metadata values that we want to update and we return our connection, so flicking back over to share point. If we look at our demo list. We should see that. Our attributes have now been updated to our our random numbers here rather than characters, which reflects what's in Projectwise. And we can also see that the update time was 3 or 4 minutes ago. Which is exactly what we would expect to see 'cause this is when the document was updated in project list? That's great. Now that that's done, I'm going to go through and do again. Basically, the same thing for for the files. So I'll run this block what we're doing exactly the same thing with the metadata. We had just updating the. Document update date property and adding in all the attributes. And then we are doing our check out here again into our working directory, which we should be able to see these documents come back down into here. And then we are going to go back through instead of using a set PNP list item down here. We are using the add PNP file. I think this is just a difference in these 2 types in share point between the generic lists in the document library that. This one here is going through an it will just update the file. And the metadata as well for that I believe that matches it based on the filename whereas if I. Uh. Did the same thing with add PMT? List item and gave it exactly the same set of metadata it would actually add a new entry for that. Which is why you said his update but this one is just adding a file? I think to an already existing? Grow here and it's going to update that metadata there as well. So that has also completed we come back over to share point and check on our demo library. And I think I'm going to need to refresh this. Will give this a moment to load up. Or maybe a few moments to load up by the looks of things there, we go. So if we come over here, we can see that our attributes have again updated to match our random series of. Numbers. We can see that the update time has also been updated to our what is now 5 or 6? 7 minutes ago In here. Which is what we would expect to see and if we come and we open up that file that I? Edited before simulating some real work on it. We can see that we have our second round of changes for our live demo in here, which is perfect. An exactly what we expected to see. So we have now successfully done that as well. We have completed the update case if you know documents have been. Updated in Projectwise, we have now synchronized those updates into SharePoint. And that uh that basically brings me to the end of. My my part of this presentation and what I wanted to show you which was copying over these documents and metadata initially and then handling the case when they are. Updated in projectwise how to synchronize that information back over to share point. The last thing that I will show you is this here. Obviously, I'm just doing this for test purposes. And I want to go and clean up my work afterwards now that I'm sure that it has worked. So I'm just using remove PNP list and giving it the identity of each list. And this false parameter here, so I don't have to confirm. I'm gonna go ahead and run dies. And now if I come back into SharePoint and I refresh this. I should get a 404 which I would expect 'cause this library, no longer exists. And if I come back to the SharePoint page. We will see that. Both those lists and libraries are missing from the quick launch because they gone and they will not be in the site contents either. So that is the end of what I would of what I wanted to show you and what I wanted to present so thank you. All for watching and I hope that you got something useful. Some useful information out of this. Anne I will now pass it back over to Bill and I will stop sharing. And I will have a look at the questions and see if we can provide some answers. Thanks Eric Great job. There are a couple of questions. I don't know if you want to address them now. 3 actually. Yup, Sir I am just coming back over to the Q&A in here. All right, So what have we got. Well, now, you're up to 5. Cool, so um. Yes, correct so this is a one time that that section in the script is a one time setup to create the columns in the list and library in SharePoint. That is correct that is what that section was doing if you've already got. List all libraries in share point that you would like to copy these into then you can skip that step basically. So all the documents synchronized with the files in Projectwise, so not in alive sense right so if I. When in now and Made some changes to the document in Projectwise. That would not be reflected in share point unless I go and run that update step where I go and return the documents from project wise and then. Update them in share point so I mean, you could handle several different ways of doing that and keeping them up to date. But by by default know unless you go and run that script again it's not going to work. Um. So Kay it's great to know that we can see some API build between private lives in SharePoint. So do I have to run so this basically. I've just answered this one as well, says do I have to run? This same set of statements every time from PowerShell? So yeah, when you want to push that information over you would have to run. These it's not going to be alive setup where that information is. Triggered to push from from SharePoint. No, I mean from projectwise into SharePoint. You do have to run those so maybe a time out or you could. Build some kind of trigger or something. So this next question, I think is already answered that's a similar question that. Every time there's an update do we need to run the script so yes, you will? Um. So no checking out this next question is will checking out a document from projectwise check out the document in SharePoint. 'Cause we don't want someone to meddle with the document in SharePoint. I think my response to that would probably be that you don't. I really want people to edit that document in SharePoint anyway, I think you should be doing all of that. Editing in Projectwise, you're really just publishing it to share point but no it will not think that it is. Checked out what you I mean, you could again depending on how frequently you wanted to run this update and you could certainly do something. Similar and set this up as a service. Would be you know you could check on the status of the document and then change the status of the document? And now in share point to match that but you would have to be running pretty frequent updates for that. Um. OK, so we got another one here? How would it work if I wanted to. Share point to download to projectwise so I think that what you mean there is thinking this, the other way. From SharePoint into projectwise. So you can do that in a very similar fashion to what we did here and basically reverse it. Where you are doing the gets from share point and then doing all the updates in Projectwise and you also have some. Other options, there were. You could use. Share point to trigger some flows for example, you know if a particular field is updated in SharePoint or anytime a list item in a particular list is updated in SharePoint. You could have that trigger a flow, which could then go and do you know one of several things? You can either call a PowerShell script directly to go and do your updates in Projectwise or you could have it Cole. The project wise flow actions that are up there in flow at the moment to go and perform those actions. So you think you have more options coming from SharePoint into project wise and the cool thing is that you do have it available on that. Triggered basis from float if you set it up on something it's changed. So yes, you can do it, you can do it in the same way or you can do it using flow. Next question could you set up an exchange based on a particular state of a file rather than exploiting an entire folder? Of course, you could definitely do that. You could just have this run and say you know return. These documents based on these safe search criteria. And then a code into that criteria that you want it based on a particular document state. And then use that set of documents rather than from a folder that was really just for example purposes but. Yes, you could certainly do it based on what play state. Next question any chance of getting a copy of the sample PS script. Yes, that will be uploaded to. The on demand version of this uh this presentation as a resource. So you should be able to download it from there, if for some reason does not work. That way and you can't do that. I'm feel free to reach out and I will I'll just send you over a copy of that. OK, so uh I have a question here is can can we use this. To keep both copies of the file up to date. So. I I'm not sure but I think what you're asking here is. If you want to keep them both up-to-date whether they were edited in SharePoint or edited in Projectwise. Uh you can. But I think that is very complex and probably not something that you want to do you would need a very, very fast? I think between those 2 because if someone is doing something to a file in share point you would need to lock it. In Projectwise and vice versa, and it would need to be locked until the other. You know the other side of that equation is finished running and then successfully updated in either projectwise of SharePoint. Hum. So you know what I think it's possible I don't. Think that it would be advisable. Yeah, too much complexity life stuff could go wrong. Uh. Is there a way to make them live synchronized again uh? Yes, I think you have a better chance of doing that from SharePoint into projectwise. You could do it from projectwise into share point as well. But I think at that point you would need to be a? You need to do some more heavy development with that because you would need to set those things to happen on triggers rather than. You know searching for those documents every 15 minutes or half an hour or hour day whatever. I do, I do think that that synchronization is best in a one way scenario here as well so. Yes, you could have it more live. Do you really need it up to the minute that's I guess that's up to you guys to answer but? My guess is probably not. Um can I share the script? Yes, I can either email me if you want it right? This second or if you can wait 2 hours and it should be uploaded as a resource. To uh to the light the on demand version of this presentation. Um. And it's running next question as it's running a script here now in future will Bentley build some GUI in Projectwise to run the scripts. Good question I cannot answer that for you, that would need to come from someone in Bentley software development. You could certainly build your own GUI to run them you could do that with PowerShell of the back end or if you have some. Some in-house develop as you could set my use something you know another.net language that's a bit. A bit more flexible to do that as well. So for now, you could build your own GUI's I don't know that. The family will be doing that, but again, I I can't answer that question for you, Sir. I think that's actually the end of the questions as well so. Thank you for all of those questions and that interaction there. Yeah, thanks a lot guys for the guys and gals for the questions and after the answers. You can continue this through email. You can continue it through communities. Uh if you if you think of something after. The session ends not a problem. So again Zack brake job. I'll just move along and just kind of finish up the presentation. And bear with me minute because my? Live you went OK got it back so again if you joined late and you didn't see a little bit of the overview. Of on 24 again this is our our this is my second attempt at this, the first one was the morning cig so. We're all learning together. To see my slides, you'll have to turn on the slides option down towards the bottom. Of your 24 screen you should see some icons down at the bottom again for anybody that joined late. Just moving through mine. OK, so again the recordings like Zach had said earlier lot easier throughout 24 than Adobe Connect believe me. To get a recording out of Adobe Connect with a project in and of itself. Now it's more automated and within a couple hours. You should receive an email if you attended saying it's available. R and again we can continue discussions on the community site. OK, I didn't want to take a minute and talk about our conferences, so accelerate projectwise 2020 registration for the Las Vegas. Conference is open. Uhm I know unlikely several of you be able to make it out there, we are doing a second. Excelerate in London. That uh the one in Vegas is going to be 20 first twenty second. Hey not a bad place to go visit if. You get an opportunity, but uh. The one in London is going to be sometime in May. They haven't announced the official dates yet or the location for that matter. But it it will be in London, it will be in May. Again here's a little overview. You know who can benefit from this, I'll surmise this by saying the way the format is going to be for both conferences. Is it 2 days there's 2 rooms one room? Is essentially for project leadership? And they'll be tracks in key notes for that. A little bit more of a high level if you will. And then the other room for the 2 days is going to be completely uh it focused deep dive. We did uh we could come up with a number of agenda sessions way more agenda sessions after pulling the professional services colleagues globally. Then we have time for I could run, I could probably fill 2 or 3 more days with some of the ideas that we have. Which you know that's great news? For us and gives us a lot of. Lot of topics for. Um. Fix which kind of worries into my next question. I kind of fast forwarded through a couple of slides there. Come for The accelerate conference. Next big and I do see that RB Parker has joined this call. RV will be facilitating the next 3. Cigs actually they're going to be uh. It's in February, February 20th. Part one of digital automation, which is really going to be central on ICS for PDF. So RB is going to do. 3 different sessions covering a range of topics from maybe some beginner to intermediate. Tips and tricks to some advanced topics and a little bit of trouble shooting mixed in there. So I look forward to those sessions as I said a minute ago we did get a lot of. Ideas that we couldn't all fit in the in the accelerate conferences. So what I hope to do at some point in the next month or 2 is to almost have the agenda planned out for all of 2020. And there's a little bit of risk in doing that because you know, I could come up with a schedule and then. Well, Hey, what we were thinking about doing in June. We have to postpone for one reason or another, but Uh I am I am hopefully get an agenda posted this way we can kind of plan and all the users can plan. Uh especially if we move eventually into vacation season. Hey, you know, there's something on the topic that really going to be near and dear to us. We don't want to miss that one. So I hope you have a little bit of the schedule out. Um. Once this presentation and so there is an option down on the bottom for survey. If you look down on your. Icons down towards the bottom that survey is more related to the content in the format of the signal? What did you think? How did you like on 24? What did you think of the topic? I had the presentation goes that kind of thing. There is when you leave the session, you should get a just a. A quick question do you need your sales Rep to contact you that's not a sales pitch that's more of? Anything you know what I haven't talked to my account manager in awhile you know, we've got a problem that I really. Getting solved anything, it doesn't necessarily mean. Hey, you say yes are guys going to try and contact you and tell you something. It's more of I need to get some communication. I really haven't talked to my account manager in awhile so. That's what that's for. So it's a simple yes or no that should come up automatically. As you exit the presentation. And with that I want to thank everybody for attending again. Zack thank you great presentation. And I look forward to talking everybody next month. Thanks bill thanks everyone for coming.
This ProjectWise Administrators Special Interest Group virtual workshop demonstrates an automated process to copy files and metadata from ProjectWise Design Integration into SharePoint using PowerShell. Join Bentley’s Bill DiGregorio, along with systems architect Zachary Kerr, as we take an in-depth look into how to copy metadata from SharePoint into ProjectWise Design Integration and more. By session end, you will know how to:
Connect to SharePoint using PowerShell
Return documents from ProjectWise to copy into SharePoint
Create new list/library items in SharePoint corresponding to source ProjectWise documents
Add metadata from ProjectWise to the newly created items in SharePoint
**The webcast will be streamed through your computer, so there is no dial-in number. Please make sure your computer speakers (or headset) are turned on and the volume is set to an audible level so you can hear the presenters. #EVENTHELPURL#