Full Code of Microsoft/mssql-scripter for AI

dev a6bdfe1cf0ab cached
50 files
779.4 KB
212.8k tokens
126 symbols
1 requests
Download .txt
Showing preview only (807K chars total). Download the full file or copy to clipboard to get everything.
Repository: Microsoft/mssql-scripter
Branch: dev
Commit: a6bdfe1cf0ab
Files: 50
Total size: 779.4 KB

Directory structure:
gitextract_418dqmc9/

├── .bumpversion.cfg
├── .gitattributes
├── .gitignore
├── .travis.yml
├── LICENSE.txt
├── MANIFEST.in
├── README.rst
├── SECURITY.md
├── appveyor.yml
├── build.py
├── dev_requirements.txt
├── dev_setup.py
├── doc/
│   ├── architecture_guide.md
│   ├── development_guide.md
│   ├── documentation_page.md
│   ├── installation_guide.md
│   ├── pypi_release_steps.md
│   ├── sequence_diagram.puml
│   ├── usage_guide.md
│   └── virtual_environment_info.md
├── dos2unix.py
├── mssql-scripter
├── mssql-scripter.bat
├── mssql-scripter.pyproj
├── mssql-scripter.sln
├── mssqlscripter/
│   ├── __init__.py
│   ├── __main__.py
│   ├── argparser.py
│   ├── jsonrpc/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── contracts/
│   │   │   ├── __init__.py
│   │   │   ├── scriptingservice.py
│   │   │   └── tests/
│   │   │       ├── scripting_baselines/
│   │   │       │   └── adventureworks2014_baseline.txt
│   │   │       └── test_scripting.py
│   │   ├── jsonrpcclient.py
│   │   └── tests/
│   │       ├── test_jsonrpc.py
│   │       └── test_jsonrpcclient.py
│   ├── main.py
│   ├── mssqltoolsservice/
│   │   ├── __init__.py
│   │   └── external.py
│   ├── scriptercallbacks.py
│   ├── scripterlogging.py
│   ├── sqltoolsclient.py
│   ├── temp.txt
│   └── tests/
│       ├── test_argparser.py
│       └── test_sqltoolsclient.py
├── setup.cfg
├── setup.py
├── tox.ini
└── utility.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .bumpversion.cfg
================================================
[bumpversion]
current_version = 1.0.0a23
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+))(?P<release_version>\d+)
serialize = 
	{major}.{minor}.{patch}{release}{release_version}

[bumpversion:part:release]
optional_value = production
values = 
	a
	rc
	production

[bumpversion:file:setup.py]

[bumpversion:file:mssqlscripter/__init__.py]



================================================
FILE: .gitattributes
================================================
# baseline files need to retain crlf for cross plat tests that simulate sql tools service response
*.txt text eol=crlf

================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# IPython Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# dotenv
.env

# virtualenv
venv/
ENV/

# Spyder project settings
.spyderproject

# Rope project settings
.ropeproject

# DS Store
.DS_Store

# sqltoolsservice binaries
/mssqlscripter/sqltoolsservice/*
/mssqlscripter/mssqltoolsservice/bin/*


# VSCode configuration
.vscode/*

# Visual Studio User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates

# MonoDevelop/Xamarin Studio User-specific files 
*.userprefs

# Visual Studio Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/

# Visual Studio 2015 cache/options directory
.vs/

================================================
FILE: .travis.yml
================================================
sudo: True
language: python
matrix:
  include:
    - os: osx
      language: generic
      env: TOXENV=py36
    - os: osx
      language: generic
      env: TOXENV=py27
    - os: linux
      python: "2.7"
    - os: linux
      python: "3.4"
    - os: linux
      python: "3.5"
    - os: linux
      python: "3.6"
before_install:
  - if [["$TRAVIS_OS_NAME" == "linux"]]; then $ apt-get update; fi
  - if [["$TRAVIS_OS_NAME" == "linux"]]; then $ apt-get install libunwind8; fi
  - if [[ ( "$TRAVIS_OS_NAME" == "osx" ) && ( "$TOXENV" == "py36" ) ]]; then brew update; fi
  - if [[ ( "$TRAVIS_OS_NAME" == "osx" ) && ( "$TOXENV" == "py36" ) ]]; then brew install python3; fi
install:
  - pip install codecov
  - pip install tox-travis
script:
  - tox
after_success:
  - codecov


================================================
FILE: LICENSE.txt
================================================
Microsoft SQL Scripter

Copyright (c) Microsoft Corporation

All rights reserved. 

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: MANIFEST.in
================================================
include LICENSE.txt
include README.rst
include mssqlscripter/mssqltoolsservice/bin/*
include mssqlscripter/mssqltoolsservice/bin/*/*

================================================
FILE: README.rst
================================================
.. image:: https://travis-ci.org/Microsoft/mssql-scripter.svg?branch=dev
    :target: https://travis-ci.org/Microsoft/mssql-scripter

.. image:: https://ci.appveyor.com/api/projects/status/vpm8p71265ijytqs/branch/dev?svg=true
    :target: https://ci.appveyor.com/project/MrMeemus/mssql-scripter

.. image:: https://codecov.io/gh/Microsoft/mssql-scripter/branch/dev/graph/badge.svg?token=M96uWrHOIu
    :target: https://codecov.io/gh/Microsoft/mssql-scripter/branch/dev

.. image:: https://badge.fury.io/py/mssql-scripter.svg
    :target: https://pypi.python.org/pypi/mssql-scripter

.. image:: https://img.shields.io/pypi/pyversions/mssql-scripter.svg
    :target: https://travis-ci.org/Microsoft/mssql-scripter

mssql-scripter
===============

PROJECT STATUS
--------------

**This tool is no longer actively maintained.**  Microsoft SQL Server Management Studio provides
a Generate Scripts Wizard that provides similar functionality to mssql-scripter.

Description
-----------

We’re excited to introduce mssql-scripter, a multi-platform command line
experience for scripting SQL Server databases.

mssql-scripter is the multiplatform command line equivalent of the widely used Generate Scripts Wizard experience in SSMS. You can use mssql-scripter on Linux, macOS, and Windows to generate data definition language (DDL) and data manipulation language (DML) T-SQL scripts for database objects in SQL Server running anywhere, Azure SQL Database, and Azure SQL Data Warehouse. You can save the generated T-SQL script to a .sql file or pipe it to standard nix utilities (for example, sed, awk, grep) for further transformations. You can edit the generated script or check it into source control and subsequently execute the script in your existing SQL database deployment processes and DevOps pipelines with standard multiplatform SQL command line tools such as sqlcmd.
 
mssql-scripter is built using Python and incorporates the usability principles of the new Azure CLI 2.0 tools. 

Installation
------------

.. code:: bash

    $ pip install mssql-scripter

Please refer to the `installation guide`_ for detailed install instructions. 

Usage
-----

Please refer to the `usage guide`_ for details on options and example usage.

For general help content, pass in the ``-h`` parameter:

.. code:: bash

    $ mssql-scripter -h

Contributing
-----------------------------
If you would like to contribute to the project, please refer to the `development guide`_.

Reporting issues and feedback
-----------------------------

If you encounter any bugs with the tool please file an issue in the
`Issues`_ section of our GitHub repo.

Code of Conduct
---------------

This project has adopted the `Microsoft Open Source Code of Conduct`_.

For more information see the `Code of Conduct FAQ`_ or contact
opencode@microsoft.com with any additional questions or comments.

License
-------

mssql-scripter is licensed under the `MIT license`_.

.. _installation guide: doc/installation_guide.md
.. _development guide: doc/development_guide.md
.. _usage guide: doc/usage_guide.md
.. _Issues: https://github.com/Microsoft/mssql-scripter/issues
.. _Microsoft Open Source Code of Conduct: https://opensource.microsoft.com/codeofconduct/
.. _Code of Conduct FAQ: https://opensource.microsoft.com/codeofconduct/faq/
.. _MIT license: https://github.com/Microsoft/mssql-scripter/blob/dev/LICENSE.txt


================================================
FILE: SECURITY.md
================================================
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->

## Security

Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).

If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.

## Reporting Security Issues

**Please do not report security vulnerabilities through public GitHub issues.**

Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).

If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).

You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). 

Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:

  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
  * Full paths of source file(s) related to the manifestation of the issue
  * The location of the affected source code (tag/branch/commit or direct URL)
  * Any special configuration required to reproduce the issue
  * Step-by-step instructions to reproduce the issue
  * Proof-of-concept or exploit code (if possible)
  * Impact of the issue, including how an attacker might exploit the issue

This information will help us triage your report more quickly.

If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.

## Preferred Languages

We prefer all communications to be in English.

## Policy

Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).

<!-- END MICROSOFT SECURITY.MD BLOCK -->


================================================
FILE: appveyor.yml
================================================
environment:

  matrix:
    - TOXENV: "py27"
      PYTHON: "C:\\Python27"
    - TOXENV: "py34"
      PYTHON: "C:\\Python34"
    - TOXENV: "py35"
      PYTHON: "C:\\Python35"
    - TOXENV: "py36"
      PYTHON: "C:\\Python36"

install:
  - "%PYTHON%\\python.exe -m pip install -r dev_requirements.txt"
  - "%PYTHON%\\python.exe -m pip install codecov" 
build: off

test_script:
  - "%PYTHON%\\python.exe -m tox"

on_success:
  - "%PYTHON%\\Scripts\\codecov.exe -f coverage.xml"


================================================
FILE: build.py
================================================
#!/usr/bin/env python

# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from __future__ import print_function
from azure.storage.blob import BlockBlobService, ContentSettings
import os
import sys
import utility
import mssqlscripter.mssqltoolsservice.external as mssqltoolsservice

AZURE_STORAGE_CONNECTION_STRING = os.environ.get('AZURE_STORAGE_CONNECTION_STRING')
BLOB_CONTAINER_NAME = 'simple'
UPLOADED_PACKAGE_LINKS = []


def print_heading(heading, f=None):
    print('{0}\n{1}\n{0}'.format('=' * len(heading), heading), file=f)


def build(platform_names):
    """
        Builds mssql-scripter package.
    """
    print_heading('Cleanup')

    # clean
    utility.clean_up(utility.MSSQLSCRIPTER_DIST_DIRECTORY)

    print_heading('Running setup')

    # install general requirements.
    utility.exec_command('pip install -r dev_requirements.txt', utility.ROOT_DIR)

    # convert windows line endings to unix for mssql-cli bash script
    utility.exec_command('python dos2unix.py mssql-scripter mssql-scripter', utility.ROOT_DIR)

    for platform in platform_names:
        utility.clean_up(utility.MSSQLSCRIPTER_BUILD_DIRECTORY)
        utility.cleaun_up_egg_info_sub_directories(utility.ROOT_DIR)

        mssqltoolsservice.copy_sqltoolsservice(platform)

        print_heading('Building mssql-scripter {} wheel package package'.format(platform))
        utility.exec_command('python --version', utility.ROOT_DIR)
        utility.exec_command(
            'python setup.py check -r -s bdist_wheel --plat-name {}'.format(platform),
            utility.ROOT_DIR,
            continue_on_error=False)
        
        mssqltoolsservice.clean_up_sqltoolsservice()


def _upload_index_file(service, blob_name, title, links):
    print('Uploading index file {}'.format(blob_name))
    service.create_blob_from_text(
        container_name=BLOB_CONTAINER_NAME,
        blob_name=blob_name,
        text="<html><head><title>{0}</title></head><body><h1>{0}</h1>{1}</body></html>"
            .format(title, '\n'.join(
                ['<a href="{0}">{0}</a><br/>'.format(link) for link in links])),
        content_settings=ContentSettings(
            content_type='text/html',
            content_disposition=None,
            content_encoding=None,
            content_language=None,
            content_md5=None,
            cache_control=None
            )
    )


def _gen_pkg_index_html(service, pkg_name):
    links = []
    index_file_name = pkg_name+'/'
    for blob in list(service.list_blobs(BLOB_CONTAINER_NAME, prefix=index_file_name)):
        if blob.name == index_file_name:
            # Exclude the index file from being added to the list
            continue
        links.append(blob.name.replace(index_file_name, ''))
    _upload_index_file(service, index_file_name, 'Links for {}'.format(pkg_name), links)
    UPLOADED_PACKAGE_LINKS.append(index_file_name)


def _upload_package(service, file_path, pkg_name):
    print('Uploading {}'.format(file_path))
    file_name = os.path.basename(file_path)
    blob_name = '{}/{}'.format(pkg_name, file_name)
    service.create_blob_from_path(
        container_name=BLOB_CONTAINER_NAME,
        blob_name=blob_name,
        file_path=file_path
    )


def validate_package(platform_names):
    """
        Install mssql-scripter wheel package locally.
    """
    root_dir = os.path.abspath(os.path.join(os.path.abspath(__file__), '..'))
    # Local install of mssql-scripter.
    mssqlscripter_wheel_dir = os.listdir(utility.MSSQLSCRIPTER_DIST_DIRECTORY)
    current_platform = utility.get_current_platform()

    mssqlscripter_wheel_name = [pkge for pkge in mssqlscripter_wheel_dir if current_platform in pkge]

    # To ensure we have a clean install, we disable the cache as to prevent cache overshadowing actual changes made.
    utility.exec_command(
       'pip install --no-cache-dir --no-index ./dist/{}'.format(mssqlscripter_wheel_name),
       root_dir, continue_on_error=False)
    

def publish_daily(platforms_names):
    """
    Publish mssql-scripter wheel package to daily storage account.
    """
    print('Publishing to simple container within storage account.')
    assert AZURE_STORAGE_CONNECTION_STRING, 'Set AZURE_STORAGE_CONNECTION_STRING environment variable'

    blob_service = BlockBlobService(connection_string=AZURE_STORAGE_CONNECTION_STRING)

    print_heading('Uploading packages to blob storage ')
    for pkg in os.listdir(utility.MSSQLSCRIPTER_DIST_DIRECTORY):
        pkg_path = os.path.join(utility.MSSQLSCRIPTER_DIST_DIRECTORY, pkg)
        print('Uploading package {}'.format(pkg_path))
        _upload_package(blob_service, pkg_path, 'mssql-scripter')
        
    # Upload index files
    _gen_pkg_index_html(blob_service, 'mssql-scripter')
    _upload_index_file(blob_service, 'index.html', 'Simple Index', UPLOADED_PACKAGE_LINKS)


def publish_official(platforms_names):
    """
    Publish mssql-scripter wheel package to PyPi.
    """
    mssqlscripter_wheel_dir = os.listdir(utility.MSSQLSCRIPTER_DIST_DIRECTORY)
    # Run twine action for mssqlscripter.
    # Only authorized users with credentials will be able to upload this package.
    # Credentials will be stored in a .pypirc file.
    for mssqlscripter_wheel_name in mssqlscripter_wheel_dir:
        utility.exec_command(
            'twine upload {}'.format(mssqlscripter_wheel_name),
            utility.MSSQLSCRIPTER_DIST_DIRECTORY)


if __name__ == '__main__':
    action = 'build'
    supported_platforms = [
        'win32',
        'win_amd64',
        'macosx_10_11_intel',
        'manylinux1_x86_64']

    targets = {
        'build': build,
        'validate_package': validate_package,
        'publish_daily': publish_daily,
        'publish_official': publish_official
    }

    if len(sys.argv) > 1:
        action = sys.argv[1]
    
    if len(sys.argv) > 2:
        supported_platforms = [sys.argv[2]]
    
    if action in targets:
        targets[action](supported_platforms)
    else:
        print('{} is not a supported action'.format(action))
        print('Supported actions are {}'.format(list(targets.keys())))


================================================
FILE: dev_requirements.txt
================================================
enum34 >= 1.1.6
future >= 0.16.0
setuptools >= 36.0.1
requests >= 2.13.0
wheel >= 0.29.0
coverage >= 4.3.4
twine >= 1.8.1
bumpversion >= 0.5.3 
tox >= 2.7.0
flake8 >= 3.3.0
pytest >= 3.0.7
pytest-cov >= 2.5.1
readme_renderer >= 17.2
docutils >= 0.13.1
azure-storage >= 0.33.0

================================================
FILE: dev_setup.py
================================================
#!/usr/bin/env python


# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from __future__ import print_function

import os
import platform
import utility
import mssqlscripter.mssqltoolsservice.external as mssqltoolsservice

print('Running dev setup...')
print('Root directory \'{}\'\n'.format(utility.ROOT_DIR))

# install general requirements.
utility.exec_command('pip install -r dev_requirements.txt', utility.ROOT_DIR)
run_time_id = utility.get_current_platform()

if run_time_id:
    mssqltoolsservice.copy_sqltoolsservice(run_time_id)
else:
    print("This platform does not support mssqltoolsservice.")


print('Finished dev setup.')


================================================
FILE: doc/architecture_guide.md
================================================
# mssql-scripter Architecture

The three core components of mssql-scripter are:
* Python Client
* Scripting Service
* SqlScriptPublishModel

## Python Client
The Python client is script that orchestrates the scripting operation. It's responsible for: 
- Parsing the command line options
- Starting the SqlToolsService process
- Issuing the scripting request to the Scripting Service
- Responding to the Scripting Service events which report progress and completion
- Piping the script results to STDIO
	
## Scripting Service 
The  Scripter Service is hosted by the SqlToolsService, which is itself a [self-contained](https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/#self-contained-deployments-scd) [.NET Core](https://docs.microsoft.com/en-us/dotnet/articles/core) console application.  The Scripting Service is responsible for:
- Exposing the JSON-RPC endpoint to handle scripting requests
- Instantiating the SqlScriptPublishModel to execute a scripting request
- Forwarding events from the SqlScriptPublishModel to clients over JSON-RPC   

#### NOTE
The SqlToolsService is used by other cross platform SQL tools, such as the [Microsoft/vscode-mssql](https://github.com/Microsoft/vscode-mssql) extension.  The SqlToolsService is an open source project and hosted on github at [Microsoft/sqltoolsservice](https://github.com/Microsoft/sqltoolsservice).

## SqlScriptPublishModel 
The SqlScriptPublishModel is the component used by the Scripting Service to drive the scripting operation.  It uses the SQL Server Management Objects (SMO) framework, to generate the underlying scripts for database.  It's responsible for:  
- Running the scripting operations using SMO
- Send progress events as the scripting operation makes progress

### SQL Server Management Objects (SMO) 
The [SQL Server Management Objects](https://docs.microsoft.com/en-us/sql/relational-databases/server-management-objects-smo/overview-smo) library is designed for programmatic management of SQL Server.  One of the many features it provides is scripting interface.  SMO can be used to discover dependencies, understand the relationships between objects, and generate a .sql script that can re-create the objects in a database. 

#### NOTE
The SqlScriptPublishModel and SMO are the same components used by the [Scripting Wizard](https://docs.microsoft.com/en-us/sql/relational-databases/scripting/generate-scripts-sql-server-management-studio) in [SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms).

# Sequence Diagram

![PlantUML model](http://www.plantuml.com/plantuml/png/tLDBJiCm4Dtx5AFkqmDK4H8g4XAYj10ku2P3Qycn4tjI54wFxNnAurIKBJjxtipaVHmI915AQskPsDo8Yj10XdM3AaTu4FnWUCaOpqaRM5psBO1Rw2uirugCbb1oePPLwn5_7EjPBT-rbdOj1IgAoXcQayYHEKnG2rbOAjHXMgzb1-sQlHJskD45oX7SR5d1YU-vHLXahy_WfptD-mm6O6XUB9qI-10IWmf_OApJ0ibTu0uhC8s2ggMZLYnK778fnFKe_9mMsUJ-OwmNvEOiSKDG6PsZjTVNzvn6ONEx9sxDJ3rbsvVaRRS6uwErDDsI9h7dWP87BgEBljQnZdDnD1vHeU647HYup_Jv1Pjjp9hvQkhGKSOAkEAo_K9m1TarEDodTnuFqDcdWMQQ95TvkXGEniSGsPBC93Tqdrt5Kt3c5xhmt_ZESFFlnMSPFvFqkfo_YSzrMKaal4tyq1s9l-aNrLNqX_PcICsBxZmYlJ_ES55XXv5sImhT4Fi6)


================================================
FILE: doc/development_guide.md
================================================
Development Guide
=================

## Table of Contents
1. [Preparing your machine](#Preparing_machine)
1. [Environment Setup](#Environment_Setup)
2. [Configuring IDE](#Configure_IDE)
3. [Running Tests](#Running_Tests)
4. [Running mssql-scripter](#Run_mssql-scripter)
4. [Packaging](pypi_release_steps.md)

See the [Architecture Guide](architecture_guide.md) for details on how mssql-scripter is designed and implemented.

mssql-scripter sources are located on GitHub (https://github.com/Microsoft/mssql-scripter). In order to contribute to the project, you are expected to: 
-	Have a GitHub account. For Microsoft contributors, follow the guidelines on https://opensourcehub.microsoft.com/ to create, configure and link your account
-	Fork the  https://github.com/Microsoft/mssql-scripterrepository into your private GitHub account
-	Create pull requests against the https://github.com/Microsoft/mssql-scripter repository to get your code changes merged into the project repository.

## <a name="Preparing_Machine"></a>1. Preparing your machine
1.	Install latest Python from http://python.org. Please note that the version of Python that comes preinstalled on OSX is 2.7. It is recommended to install both Python 2.7 and Python3.6 to ensure backwards compatibility for testing.
    #### Windows
    - The latest Python installation package can be downloaded from [here](https://www.python.org/downloads/).  
    - During installation, select the 'Add Python to PATH' option.  Python must be in the PATH environment variable.
    
2. Clone the repo from [https://github.com/Microsoft/mssql-scripter](https://github.com/Microsoft/mssql-scripter)

## <a name="Environment_Setup"></a>2. Environment Setup
When developing on a Python project, it is recommended to do so in a virtual environment. A virtual environment is a sandbox that maintains a copy of all libraries necessary to run python in a isolated environment without interfering with the system or global python. For more information on virtual environments, go to [Virtual Environment Info](docs/virtual_environment_info.md).

If not developing in a virtual environment, please proceed to [Development Setup](#Development) 
### Virtual Environment
1. Create a virtual environment in a subdirectory of your `<clone_root>`, using `<clone_root>/env` as a example:
 
     ##### Windows
    ```
    python -m venv <clone_root>\env
    ```
    ##### MacOS/Linux (bash)
    ```
    python –m venv <clone_root>/env
    ```
2.  Activate the env virtual environment by running:

    ##### Windows
    ```
    <clone_root>\env\scripts\activate.bat
    ```
    ##### MacOS/Linux (bash)
    ```
    . <clone_root>/env/bin/activate
    ```
3. To deactivate the virtual environment:

    ##### Windows
    ```
    <clone_root>\env\scripts\deactivate.bat
    ```
    ##### MacOS/Linux (bash)
    ```
    deactivate
    ```
### <a name="Development"></a>Development Setup
General development steps that apply to both a virtual environment or a global environment. If working in a virtual environment, do ensure the virtual environment is activated.
1.  Add `<clone_root>` to your PYTHONPATH environment variable:

    ##### Windows
    ```
    set PYTHONPATH=<clone_root>;%PYTHONPATH%
    ```
    ##### MacOS/Linux (bash)
    ```
    export PYTHONPATH=<clone_root>:${PYTHONPATH}
    ```
2.	Install the dependencies:
    ```
    python <clone_root>/dev_setup.py clean
    ```
## <a name="Configure_IDE"></a>3. Configuring your IDE
#### Visual Studio (Windows only)
1.	Install [Python Tools for Visual Studio](https://github.com/Microsoft/PTVS)
2.	Open the `<clone_root>\mssql-scripter.pyproj` project in Visual Studio


#### Visual Studio Code (Any platform)

1.	Install VS Code
2.	Install the the VS Code [Python extension](https://marketplace.visualstudio.com/items?itemName=donjayamanne.python)

The repo has a launch.json file that will launch the version of Python that is first on your path. 

## <a name="Running_Tests"></a>4. Running Tests
Provided your PYTHONPATH was set correctly, you can run the tests from your `<clone_root>` directory.

1. Run end to end tests (code format, unit tests, packaging, integration,) with tox:
    

    ```
    tox
    ```
    **Note**: Tox is used run full suite of tests in each python version. Running the command above will run the full suite of tests against Python 2.7 and Python 3.6, if installed. More info can be found at [tox testing.](http://tox.readthedocs.io/en/latest/index.html)

    Run tox tests against specific Python version:

    ```
    tox -e py27
    tox -e py36
    ```

    **Recommended**: Recreate virtual environment on each run to ensure tests are not executing against cached changes.

    ```
    tox --recreate -e py27
    tox --recreate -e py36
    ```
2. Run unit tests with code coverage only:

    ```
    pytest --cov mssqlscripter
    ```
2. Running tests for specific components:
  
    To test the mssqlscripter:
    ```
    pytest mssqlscripter/tests
    ```
    To test the jsonrpc library:
    ```
    pytest mssqlscripter/jsonrpc/tests
    ```

    To test the scripting service:
    ```
    pytest mssqlscripter/jsonrpc/contracts/tests
    ```

## <a name="Run_mssql-scripter"></a>5. Running mssql-scripter
#### Command line

1.  Invoke mssql-scripter using:

    ##### MacOS/Linux (bash):
    ```
    mssql-scripter -h
    ```

    ##### Windows:
    ```
    <clone_root>\mssql-scripter.bat -h
    ```
    which is equivalent to the following:
    ```
    python -m mssqlscripter -h
    ```


================================================
FILE: doc/documentation_page.md
================================================
# Get Started with mssql-scripter

mssql-scripter is the command line equivalent of the widely used Generate Scripts Wizard experience in SSMS.

You can use mssql-scripter on Linux, macOS, Windows, and the Azure Cloud Shell to generate data definition language (DDL) and data manipulation language (DML) T-SQL scripts for database objects in SQL Server running anywhere, Azure SQL Database, and Azure SQL Data Warehouse. You can save the generated T-SQL script to a .sql file or pipe it to standard *nix utilities (for example, sed, awk, grep) for further transformations. You can edit the generated script or check it into source control and subsequently execute the script in your existing SQL database deployment processes and DevOps pipelines with standard multiplatform SQL command line tools such as sqlcmd.

## Install

For information about installation, please see the LINK/install guide/LINK.

The examples in this guide use the Adventureworks sample database. You can download the sample [here](https://www.microsoft.com/en-us/download/details.aspx?id=49502).

## Generate scripts
Use mssql-scripter to generate scripts for database schema and/or data by including specific objects, targeting server versions/editions,  and piping the script to files.

### Dump database object schema

    # generate DDL scripts for all objects in the Adventureworks database and save the script to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa
    
    # alternatively, specify the schema only flag to generate DDL scripts for all objects in the Adventureworks database and save the script to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa -f ./adventureworks.sql

### Dump database object data

    # generate DDL scripts for all objects in the Adventureworks database and save the script to stdout.
    mssql-scripter -S localhost -d AdventureWorks -U sa --data-only

### Dump the database object schema and data

    # script the database schema and data piped to a file.
    mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data  > ./adventureworks.sql

    # execute the generated above script with sqlcmd
    sqlcmd -S mytestserver -U sa -i ./adventureworks.sql
    
### Include database objects

    # generate DDL scripts for objects that contain 'Employee' in their name to stdout
    mssql-scripter -S localhost -d AdventureWorks -U sa --include-objects Employee

    # generate DDL scripts for the dbo schema and pipe the output to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa --include-objects dbo. > ./dboschema.sql

### Exclude database objects
   
    # generate DDL scripts for objects that do not contain 'Sale' in their name to stdout
    mssql-scripter -S localhost -d AdventureWorks -U sa --exclude-objects Sale

### Target server version
    
    # specify the version of SQL Server the script will be run against
    mssql-scripter -S myServer -d AdventureWorks -U myUser –-target-server-version "AzureDB" > myData.sql

### Target server edition

    # specify the edition of SQL Server the script will be run against
    mssql-scripter -S localhost -d AdventureWorks -U myUser –-target-server-edition "Enterprise" > myData.sql

### Pipe a generated script to sed
Note this example is for Linux and macOS usage.

    # change a schema name in the generated DDL script
    # 1) generate DDL scripts for all objects in the Adventureworks database
    # 2) pipe generated script to sed and change all occurrences of SalesLT to SalesLT_test and save the script to a file
    mssql-scripter -S localhost -d Adventureworks -U sa | sed -e "s/SalesLT./SalesLT_test./g" > adventureworks_SalesLT_test.sql 

### Script data to a file
   
    # script all the data to a file.
    mssql-scripter -S localhost -d AdventureWorks -U sa --data-only > ./adventureworks-data.sql 

### Set environment variables
You can set environment variables for your connection string through the following steps:


    # set environment variable MSSQL_SCRIPTER_CONNECTION_STRING with a connection string.
    export MSSQL_SCRIPTER_CONNECTION_STRING='Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;'
    mssql-scripter

    # set environment variable MSSQL_SCRIPTER_PASSWORD so no password input is required.
    export MSSQL_SCRIPTER_PASSWORD='[PLACEHOLDER]'
    mssql-scripter -S localhost -d AdventureWorks -U sa
    
 ## Generate and run scripts
 In this example you will generate a script, send it to a file, and execute the script.
 
 Generate a script and send it to a file using mssql-scripter.
    # script all the data to a file.
    mssql-scripter -S localhost -d AdventureWorks -U sa --data-only > ./adventureworks-data.sql
    
 Now that you have generated a script for your database objects, you can execute the script using sqlcmd such as in the example below.
    
    # execute the script from the file.
    sqlcmd -S localhost -d AdventureWorks -U sa -i`./adventureworks-data.sql
 
 You can find more details on using sqlcmd [here](https://docs.microsoft.com/en-us/sql/relational-databases/scripting/sqlcmd-use-the-utility).

## Use mssql-scripter in the Cloud Shell
You can use mssql-scripter in the Azure Cloud Shell to generate scripter for Azure SQL DB, Azure SQL DW, and SQL Server instances in Azure VMs. [Connect to the Azure Cloud Shell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview?view=azure-cli-latest). Once connected, you can use mssql-scripter in the terminal as you would in a local terminal.


================================================
FILE: doc/installation_guide.md
================================================
# Installation Guide

## Quick Start
mssql-scripter is installed via pip.  If you know pip, you can install mssql-scripter using command
```shell
$ pip install mssql-scripter 
```
This command may need to run as sudo if you are installing to the system site packages. mssql-scripter can be 
installed using the --user option, which does not require sudo.
```shell
$ pip install --user mssql-scripter 
```

If you are having installation issues, see the [troubleshooting](#troubleshooting) section for known issues and workarounds.  

### Dependencies

Upon installation, mssql-scripter will detect the operating system or distribution of the host to install the mssqltoolsservice, a platform specific native dependency. Due to this native dependency being detected during the setup.py install, it is recommended that wheel caches not be shared amongst different operating system platforms and distributions. If you upgrade your operating system or distribution, please reinstall mssql-scripter with --no-cache-dir option.
```shell
$ pip install mssql-scripter --no-cache-dir
```

## Detailed Instructions

For operating system specific installs, see one of the following links:

* [macOS](#macos-installation)
* [Linux](#linux-installation)
* [Windows](#windows-installation)

# macOS Installation

Check if Python is installed using command:
```shell
$ python --version
```
If Python is not installed or less than version 2.7, upgrade Python using the following command:
```shell
$ sudo brew install python
```

Check if pip 9.0 or above is installed using command: 
```shell
$ pip --version
```

If pip is not installed or less than version 9.0, upgrade pip using the following command:

```shell
$ sudo pip install --upgrade pip
```

Install mssql-scripter using command:

```shell
$ sudo pip install mssql-scripter 
```

# Linux Installation

Check if pip 9.0 or above is installed using command: 
```shell
$ pip --version
```

If pip is not installed or less than version 9.0, upgrade pip using the following command:

```shell
$ sudo apt-get install python-pip
$ sudo pip install --upgrade pip
```

Install mssql-scripter using command:

```shell
$ sudo pip install mssql-scripter 
```
If you are using Ubuntu or Debian, you'll need to install the libunwind8 package.  See the [libunwind8 installation steps below](#installing-the-libunwind8-package).

If you are using RHEL, you'll need to install the icu package.  See the [icu installation steps below](#installing-the-icu-package).

# Windows Installation

Python is not installed by default on Windows.  The latest Python installation package can be downloaded from [here](https://www.python.org/downloads/).  When installing, select the 'Add Python to PATH' option.  Python must be in the PATH environment variable.

Once Python is installed and in the PATH environment variable, open a command prompt, and install mssql-scripter using the command:
```shell
C:\> pip install mssql-scripter 
```

# Troubleshooting

If you're having installation issues, please check the below known issues and workarounds.  If you're having a different issue, please check the [issues](https://github.com/Microsoft/mssql-scripter/issues) page to see if the issue has already been reported.  If you don't see your issue there, filing a new issue would be appreciated.

## Error: No module named mssqlscripter
If the installation was successful and this error message is encountered, this may be caused by different versions of python in the environment.
i.e Used python 3.6 to install mssql-scripter, but PATH has python 2.7 so it uses the python 2.7 interpreter which has no visibility to packages installed into python 3.6.

The workaround to prevent this is to use a virtual environment, which will provide a isolated environment that is tied to a specific python version.
More information can be found at:

- [Virtual Environment Info](virtual_environment_info.md)

- [Development guide](development_guide.md#Environment_Setup)

## Error: Could not find version that satisfies the requirement mssql-scripter
If you see the above error running `pip install mssql-scripter`, this means the pip version used is out-of-date.  Upgrade pip using the command:
```shell
$ sudo apt-get install python-pip
$ sudo pip install --upgrade pip
```

## Error: System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found.
If you encounter this error on MacOS, this means you need the latest version of OpenSSL. To update:
```shell
$ brew update
$ brew install openssl
$ mkdir -p /usr/local/lib
$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
```

## Error: libunwind.so.8: cannot open shared object file
If you encounter the below error running mssql-scripter, this means the libunwind8 package is not installed.  This error has been seen
on Ubuntu 14 & 17, Debian 8.
```shell
Failed to load /usr/local/lib/python2.7/dist-packages/mssqltoolsservice/bin/libcoreclr.so, error 
libunwind.so.8: cannot open shared object file: No such file or directory
```

## Error: Failed to initialize CoreCLR, HRESULT: 0x80131500 on RHEL
If you encounter this error running mssql-scripter Red Hat Enterprise Linux, it could be due to the icu package not being installed.  See the [icu installation steps below](#installing-the-icu-package).

## Installing the libunwind8 package

### Ubuntu 14 & 17
Run commands
```shell
$ sudo apt-get update
$ sudo apt-get install libunwind8
```

### Debian 8
The file `/etc/apt/sources.list' needs to be updated with the following line
```
deb http://ftp.us.debian.org/debian/ jessie main
```
Then run commands:
```shell
$ sudo apt-get update
$ sudo apt-get install libunwind8
```

### CentOS 7
Run commands
```shell
## libunwind.x86_64 is in the epel-release repository
## (Not necessary on GNOME, minimal install does not have this installed)
$ sudo yum -y install epel-release
$ sudo yum -y install libunwind
```

## Installing the icu package

### RHEL 7.3
Run commands
```shell
$ sudo yum install icu
```


================================================
FILE: doc/pypi_release_steps.md
================================================
PYPI Test mssql-scripter upload
========================================

### Requirements:
1. Create and Register a user account on testpypi at [test pypi](https://testpypi.python.org/pypi?%3Aaction=register_form)

2.  Add `<clone_root>` to your PYTHONPATH environment variable:
    ##### Windows
    ```
    set PYTHONPATH=<clone_root>;%PYTHONPATH%
    ```
    ##### OSX/Ubuntu (bash)
    ```
    export PYTHONPATH=<clone_root>:${PYTHONPATH}
    ```
3.	Install the dependencies:
    ```
    python <clone_root>/dev_setup.py clean
    ```


## Bump Version

	Versioning schema: {major}.{minor}.{patch}{release}{release_version}	
    Example: 1.0.0a0
To bump a particular segment of the version, from `<clone_root>` execute:
<pre>
bumpversion major              ->  <b>2</b>.0.0a0
bumpversion minor              ->  1.<b>1</b>.0a0
bumpversion patch              ->  1.0.<b>1</b>a0
bumpversion release            ->  1.0.0<b>rc</b>0
bumpversion release_version    ->  1.0.0a<b>1</b>
</pre>

**Note**: bumpversion does not allow version bumping if your workspace has pending changes.This is to protect against any manual updates that may have been made which can lead to inconsistent versions across files. If you know what you are doing you can override this by appending `--allow-dirty` to the bumpversion command.
	
## Build
1. Clean distribution folders:

    ##### Windows
      ```
      rmdir /s dist
      ```
  
    ##### OSX/Ubuntu (bash)
      ```
      rm -rf dist
      ```
2. Build mssql-scripter platform wheels and verify readme.rst, From `<clone_root>` execute:
    ```
    python build.py
    ```
    
    Build a OS-Specific wheel:
	```
    python build.py build win32
    python build.py build win_amd64
    python build.py build macosx_10_11_intel
    python build.py build manylinux1_x86_64
	```

4. Add a .pypirc configuration file:

    - Create a .pypirc file in your user directory:
        #### Windows: 
            Example: C:\Users\bob\.pypirc
		#### MacOS/Linux: 
            Example: /Users/bob/.pypirc
    
    - Add the following content to the .pypirc file, replace `your_username` and `your_passsword` with your account information created from step 1:
        ```
		[distutils]
		index-servers=
		    pypitest
		 
		[pypitest]
		repository = https://test.pypi.org/legacy/
		username = your_username
		password = your_password
        ```
4. Upload to pypi test server:
    ```
    python register_upload.py upload pypitest
    ```

5. Test install locally

	To install the local mssql-scripter wheel package, from `<clone_root>` execute:
    ```
    sudo pip install --no-index -i ./dist/mssql_scripter-1.0.0a1-py2.py3-none-win32.whl
    ```

6. Test install via pypi server:

	**Note**: Specifying the test pypi server as the index to search for, pip will attempt to search for mssql-scripter's dependencies from the same server. This can result in a requirement not found error, but should not be a problem if dev_setup.py was ran during developer setup. If the error does occur, manually pip install the dependencies that are listed in setup.py and ensure the versions are correct.
	
	Install the mssql-scripter package that was just uploaded:
    ```
	pip install -i https://testpypi.python.org/pypi mssql-scripter
	```

	Upgrade to the mssql-scripter that was uploaded:
	```
    pip install --upgrade -i https://testpypi.python.org/pypi mssql-scripter
    ```


================================================
FILE: doc/sequence_diagram.puml
================================================
See http://plantuml.com/sequence-diagram for details on the syntax for creating 
sequence diagrams using plantuml.

@startuml

title mssql-scripter Sequence Diagram

actor "mssql-scripter" as script
control main.py as main
control SqlToolsClient
control SqlToolsService
entity ScriptingService
entity SqlScriptPublishModel
entity SMO
database "SQL Server" AS database
entity ".sql file" as file

script -> main : run python
main -> SqlToolsClient : new SqlToolsClient 
SqlToolsClient -> SqlToolsService : start process
main -> SqlToolsClient : script database 
SqlToolsClient -> ScriptingService : script database JSON-RPC request
SqlToolsClient <- ScriptingService
main <- SqlToolsClient
ScriptingService -> SqlScriptPublishModel : GenerateScript 
SqlScriptPublishModel -> SMO : script database
SMO <-> database : analyze table
SMO -> file : script table 
SqlToolsService <-- SqlScriptPublishModel : progress
SqlToolsClient <-- SqlToolsService : progress JSON-RPC event
SMO <-> database : analyze table 
SMO -> file : script table 
SqlToolsService <-- SqlScriptPublishModel : progress
SqlToolsClient <-- SqlToolsService : progress JSON-RPC event
SMO <-> database : analyze table 
SMO -> file : script table 
SqlScriptPublishModel <- SMO :
ScriptingService <- SqlScriptPublishModel :  
SqlToolsService <-- SqlScriptPublishModel : complete
SqlToolsClient <-- SqlToolsService : complete JSON-RPC event
SqlToolsClient -> SqlToolsService : stop process
main -> file : load file 
main -> script : pipe file to stdout

@endumla


================================================
FILE: doc/usage_guide.md
================================================
# Usage Guide
Contents:

[Options](#options)

[Examples](#examples)

[Environment Variables](#environment-variables)

## Description
mssql-scripter is the multiplatform command line equivalent of the widely used Generate Scripts Wizard experience in SSMS.
 
You can use mssql-scripter on Linux, macOS, and Windows to generate data definition language (DDL) and data manipulation language (DML) T-SQL scripts for database objects in SQL Server running anywhere, Azure SQL Database, and Azure SQL Data Warehouse. You can save the generated T-SQL script to a .sql file or pipe it to standard *nix utilities (for example, sed, awk, grep) for further transformations. You can edit the generated script or check it into source control and subsequently execute the script in your existing SQL database deployment processes and DevOps pipelines with standard multiplatform SQL command line tools such as sqlcmd.

## Options
For option parameters, pass in '-h': 

    $ mssql-scripter -h
    usage: mssql-scripter [-h] [--connection-string  | -S ] [-d] [-U] [-P] [-f]
                      [--file-per-object] [--data-only | --schema-and-data]
                      [--script-create | --script-drop | --script-drop-create]
                      [--target-server-version {2005,2008,2008R2,2012,2014,2016,vNext,AzureDB,AzureDW}]
                      [--target-server-edition {Standard,Personal,Express,Enterprise,Stretch}]
                      [--include-objects [[...]]] [--exclude-objects [[...]]]
                      [--include-schemas [[...]]] [--exclude-schemas [[...]]]
                      [--include-types [[...]]] [--exclude-types [[...]]]
                      [--ansi-padding] [--append] [--check-for-existence] [-r]
                      [--convert-uddts] [--include-dependencies]
                      [--exclude-headers] [--constraint-names]
                      [--unsupported-statements]
                      [--disable-schema-qualification] [--bindings]
                      [--collation] [--exclude-defaults]
                      [--exclude-extended-properties] [--logins]
                      [--object-permissions] [--owner]
                      [--exclude-use-database] [--statistics]
                      [--change-tracking] [--exclude-check-constraints]
                      [--data-compressions] [--exclude-foreign-keys]
                      [--exclude-full-text-indexes] [--exclude-indexes]
                      [--exclude-primary-keys] [--exclude-triggers]
                      [--exclude-unique-keys] [--display-progress]
                      [--enable-toolsservice-logging] [--version]

    Microsoft SQL Server Scripter Command Line Tool. Version 1.0.0a14

    optional arguments:
      -h, --help            show this help message and exit
      --connection-string   Connection string of database to script. If connection
                            string and server are not supplied, defaults to value
                            in environment variable
                            MSSQL_SCRIPTER_CONNECTION_STRING.
      -S , --server         Server name.
      -d , --database       Database name.
      -U , --user           Login ID for server.
      -P , --password       If not supplied, defaults to value in environment
                            variable MSSQL_SCRIPTER_PASSWORD.
      -f , --file-path      File to script out to or directory name if scripting
                            file per object.
      --file-per-object     By default script to a single file. If supplied and
                            given a directory for --file-path, script a file per
                            object to that directory.
      --data-only           By default only the schema is scripted. if supplied,
                            generate scripts that contains data only.
      --schema-and-data     By default only the schema is scripted. if supplied,
                            generate scripts that contain schema and data.
      --script-create       Script object CREATE statements.
      --script-drop         Script object DROP statements.
      --script-drop-create  Script object CREATE and DROP statements.
      --target-server-version {2005,2008,2008R2,2012,2014,2016,vNext,AzureDB,AzureDW}
                            Script only features compatible with the specified SQL
                            Version.
      --target-server-edition {Standard,Personal,Express,Enterprise,Stretch}
                            Script only features compatible with the specified SQL
                            Server database edition.
      --include-objects [ [ ...]]
                            Database objects to include in script.
      --exclude-objects [ [ ...]]
                            Database objects to exclude from script.
      --include-schemas [ [ ...]]
                            Database objects of this schema to include in script.
      --exclude-schemas [ [ ...]]
                            Database objects of this schema to exclude from
                            script.
      --include-types [ [ ...]]
                            Database objects of this type to include in script.
      --exclude-types [ [ ...]]
                            Database objects of this type to exclude from script.
      --ansi-padding        Generates ANSI Padding statements.
      --append              Append script to file.
      --check-for-existence
                            Check that an object with the given name exists before
                            dropping or altering or that an object with the given
                            name does not exist before creating.
      -r, --continue-on-error
                            Continue scripting on error.
      --convert-uddts       Convert user-defined data types to base types.
      --include-dependencies
                            Generate script for the dependent objects for each
                            object scripted.
      --exclude-headers     Exclude descriptive headers for each object scripted.
      --constraint-names    Include system constraint names to enforce declarative
                            referential integrity.
      --unsupported-statements
                            Include statements in the script that are not
                            supported on the target SQL Server Version.
      --disable-schema-qualification
                            Do not prefix object names with the object schema.
      --bindings            Script options to set binding options.
      --collation           Script the objects that use collation.
      --exclude-defaults    Do not script the default values.
      --exclude-extended-properties
                            Exclude extended properties for each object scripted.
      --logins              Script all logins available on the server, passwords
                            will not be scripted.
      --object-permissions  Generate object-level permissions.
      --owner               Script owner for the objects.
      --exclude-use-database
                            Do not generate USE DATABASE statement.
      --statistics          Script all statistics.
      --change-tracking     Script the change tracking information.
      --exclude-check-constraints
                            Exclude check constraints for each table or view
                            scripted.
      --data-compressions   Script the data compression information.
      --exclude-foreign-keys
                            Exclude foreign keys for each table scripted.
      --exclude-full-text-indexes
                            Exclude full-text indexes for each table or indexed
                            view scripted.
      --exclude-indexes     Exclude indexes (XML and clustered) for each table or
                            indexed view scripted.
      --exclude-primary-keys
                            Exclude primary keys for each table or view scripted.
      --exclude-triggers    Exclude triggers for each table or view scripted.
      --exclude-unique-keys
                            Exclude unique keys for each table or view scripted.
      --display-progress    Display scripting progress.
      --enable-toolsservice-logging
                            Enable verbose logging.
      --version             show program's version number and exit
      
## Examples
Below are example commands that run against the AdventureWorks database. Here is the list of examples:

[Dump database object schema](#dump-database-object-schema)

[Dump database object data](#dump-database-object-data)

[Dump database object schema and data](#dump-the-database-object-schema-and-data)

[Include database objects](#include-database-objects)

[Exclude database objects](#exclude-database-objects)

[Include database object types](#include-database-object-types)

[Target server version](#target-server-version)

[Target server edition](#target-server-edition)

[Pipe a generated script to sed](#pipe-a-generated-script-to-sed)

[Script data to a file](#script-data-to-a-file)




### Dump database object schema

    # generate DDL scripts for all objects in the Adventureworks database and save the script to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa
    
    # alternatively, specify the schema only flag to generate DDL scripts for all objects in the Adventureworks database and save the script to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa -f ./adventureworks.sql

### Dump database object data

    # generate DDL scripts for all objects in the Adventureworks database and save the script to stdout.
    mssql-scripter -S localhost -d AdventureWorks -U sa --data-only

### Dump the database object schema and data

    # script the database schema and data piped to a file.
    mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data  > ./adventureworks.sql

    # execute the generated above script with sqlcmd
    sqlcmd -S mytestserver -U sa -i ./adventureworks.sql
    
### Include database objects

    # generate DDL scripts for objects that contain 'Employee' in their name to stdout
    mssql-scripter -S localhost -d AdventureWorks -U sa --include-objects Employee

    # generate DDL scripts for the dbo schema and pipe the output to a file
    mssql-scripter -S localhost -d AdventureWorks -U sa --include-objects dbo. > ./dboschema.sql

### Exclude database objects
   
    # generate DDL scripts for objects that do not contain 'Sale' in their name to stdout
    mssql-scripter -S localhost -d AdventureWorks -U sa --exclude-objects Sale

### Include database object types
   
    # generate DDL scripts for stored procedures to stdout  
    # The list of object types is specified in the DatabaseObjectTypes Enum of Microsoft.SqlServer.Management.Smo 
    # https://docs.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.management.smo.databaseobjecttypes?view=sql-smo-160
    mssql-scripter -S localhost -d AdventureWorks -U sa --include-types StoredProcedure

### Target server version
    
    # specify the version of SQL Server the script will be run against
    mssql-scripter -S myServer -d AdventureWorks -U myUser –-target-server-version "AzureDB" > myData.sql

### Target server edition

    # specify the edition of SQL Server the script will be run against
    mssql-scripter -S localhost -d AdventureWorks -U myUser –-target-server-edition "Enterprise" > myData.sql

### Pipe a generated script to sed
Note this example is for Linux and macOS usage.

    # change a schema name in the generated DDL script
    # 1) generate DDL scripts for all objects in the Adventureworks database
    # 2) pipe generated script to sed and change all occurrences of SalesLT to SalesLT_test and save the script to a file
    $ mssql-scripter -S localhost -d Adventureworks -U sa | sed -e "s/SalesLT./SalesLT_test./g" > adventureworks_SalesLT_test.sql 

### Script data to a file
   
    # script all the data to a file.
    mssql-scripter -S localhost -d AdventureWorks -U sa --data-only > ./adventureworks-data.sql 
    

## Environment Variables
You can set environment variables for your connection string through the following steps:


    # (linux/bash)
    # set environment variable MSSQL_SCRIPTER_CONNECTION_STRING with a connection string.
    $ export MSSQL_SCRIPTER_CONNECTION_STRING='Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;'
    $ mssql-scripter

    # (linux/bash)
    # set environment variable MSSQL_SCRIPTER_PASSWORD so no password input is required.
    $ export MSSQL_SCRIPTER_PASSWORD='[PLACEHOLDER]'
    $ mssql-scripter -S localhost -d AdventureWorks -U sa

    # (windows)
    # set environment variable MSSQL_SCRIPTER_CONNECTION_STRING with a connection string.
    $Env:MSSQL_SCRIPTER_CONNECTION_STRING = 'Server=myserver;Database=mydb;User Id=myuser;Password=mypassword;'
    mssql-scripter
    
    # (windows)
    # set environment variable MSSQL_SCRIPTER_PASSWORD so no password input is required.
    $Env:MSSQL_SCRIPTER_PASSWORD = "placeholder"
    mssql-scripter -S localhost -d AdventureWorks -U sa


================================================
FILE: doc/virtual_environment_info.md
================================================
Virtual Environment
========================================

## What is a virtual environment?
    - A isolated Python environment that is installed into a directory.
    - Maintains it's own copy of Python and pip (Python's package manager).
    - When activated all Python operations will route to the Python interpreter within the virtual environment.

## What are the benefits?
    - Keeps your global site-packages directory clean and manageable.
    - Keeps system or user installed Python and it's libraries untouched.
    - Solves the problem of “Project X depends on version 1.x but, Project Y needs 4.x”.
    - Development will not interfere with the System or the user's python. 
    - All libraries installed in the virtual environment will only be used within that environment.

## How to install?

    $ pip install virtualenv

## How to create a virtual environment?
In current directory:
    
    python -m venv .

In a subdirectory that does not exist:

    python -m venv ./new_dir

## How to activate a virtual environment?
##### Windows
```
new_dir\scripts\activate.bat
```
##### MacOS/Linux (bash)
```
. new_dir/bin/activate
```
## How to deactivate a virtual environment?
##### Windows
```
<clone_root>\env\scripts\deactivate.bat
```
##### MacOS/Linux (bash)
```
deactivate
```


================================================
FILE: dos2unix.py
================================================
#!/usr/bin/env python
"""\
convert dos linefeeds (crlf) to unix (lf)
usage: dos2unix.py <input> <output>
"""

__version__ = "1"  # version is needed for packaging

import sys

if len(sys.argv[1:]) != 2:
  sys.exit(__doc__)

content = ''
outsize = 0
with open(sys.argv[1], 'rb') as infile:
  content = infile.read()
with open(sys.argv[2], 'wb') as output:
  for line in content.splitlines():
    outsize += len(line) + 1
    output.write(line + b'\n')

print("Done. Stripped %s bytes." % (len(content)-outsize))

================================================
FILE: mssql-scripter
================================================
#!/bin/bash

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
  DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
  SOURCE="$(readlink "$SOURCE")"
  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

# Set the python io encoding to UTF-8 by default if not set.
if [ -z ${PYTHONIOENCODING+x} ]; then export PYTHONIOENCODING=utf8; fi

export PYTHONPATH="${DIR}:${PYTHONPATH}"

python -m mssqlscripter "$@"


================================================
FILE: mssql-scripter.bat
================================================
@echo off
setlocal
REM Set the python io encoding to UTF-8 by default if not set.
IF "%PYTHONIOENCODING%"=="" (
    SET PYTHONIOENCODING="UTF-8"
)
SET PYTHONPATH=%~dp0;%PYTHONPATH%
python -m mssqlscripter %*

endlocal


================================================
FILE: mssql-scripter.pyproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{f4bb6290-43f3-4f35-b26e-067c5ef8e64b}</ProjectGuid>
    <ProjectHome />
    <StartupFile>mssqlscripter\main.py</StartupFile>
    <SearchPath>.</SearchPath>
    <WorkingDirectory>.</WorkingDirectory>
    <OutputPath>.</OutputPath>
    <ProjectTypeGuids>{888888a0-9f3d-457c-b088-3a5042f75d52}</ProjectTypeGuids>
    <LaunchProvider>Standard Python launcher</LaunchProvider>
    <CommandLineArguments>-S localhost -d AdventureWorks2014</CommandLineArguments>
    <EnableNativeCodeDebugging>False</EnableNativeCodeDebugging>
    <IsWindowsApplication>False</IsWindowsApplication>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug'" />
  <PropertyGroup Condition="'$(Configuration)' == 'Release'" />
  <PropertyGroup>
    <VisualStudioVersion Condition=" '$(VisualStudioVersion)' == '' ">10.0</VisualStudioVersion>
  </PropertyGroup>
  <ItemGroup>
    <Content Include=".gitignore" />
    <Content Include="appveyor.yml" />
    <Content Include="dev_requirements.txt" />
    <Content Include="doc\README.md" />
    <Content Include="doc\architecture_guide.md" />
    <Content Include="doc\development_guide.md" />
    <Content Include="doc\pypi_release_steps.md" />
    <Content Include="doc\installation_guide.md" />
    <Content Include="doc\sequence_diagram.puml" />
    <Content Include="doc\virtual_environment_info.md" />
    <Content Include="LICENSE.txt" />
    <Content Include="MANIFEST.in" />
    <Content Include="mssql-scripter" />
    <Content Include="mssql-scripter.bat" />
    <Content Include="mssqlscripter\jsonrpc\contracts\tests\scripting_baselines\adventureworks2014_baseline.txt" />
    <Content Include="mssqlscripter\jsonrpc\README.md" />
    <Content Include="mssqltoolsservice\LICENSE.txt" />
    <Content Include="mssqltoolsservice\MANIFEST.in" />
    <Content Include="mssqltoolsservice\README.rst" />
    <Content Include="mssqltoolsservice\setup.cfg" />
    <Content Include="README.rst" />
    <Content Include="setup.cfg" />
    <Content Include="tox.ini" />
    <Content Include=".bumpversion.cfg" />
    <Content Include=".travis.yml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="build.py" />
    <Compile Include="dev_setup.py" />
    <Compile Include="mssqlscripter\argparser.py" />
    <Compile Include="mssqlscripter\jsonrpc\contracts\scriptingservice.py" />
    <Compile Include="mssqlscripter\jsonrpc\contracts\tests\test_scripting.py" />
    <Compile Include="mssqlscripter\jsonrpc\contracts\__init__.py" />
    <Compile Include="mssqlscripter\jsonrpc\jsonrpcclient.py" />
    <Compile Include="mssqlscripter\jsonrpc\tests\test_jsonrpc.py" />
    <Compile Include="mssqlscripter\jsonrpc\tests\test_jsonrpcclient.py" />
    <Compile Include="mssqlscripter\jsonrpc\__init__.py" />
    <Compile Include="mssqlscripter\main.py" />
    <Compile Include="mssqlscripter\scriptercallbacks.py" />
    <Compile Include="mssqlscripter\scripterlogging.py" />
    <Compile Include="mssqlscripter\sqltoolsclient.py" />
    <Compile Include="mssqlscripter\tests\test_argparser.py" />
    <Compile Include="mssqlscripter\tests\test_sqltoolsclient.py" />
    <Compile Include="mssqlscripter\__init__.py" />
    <Compile Include="mssqlscripter\__main__.py" />
    <Compile Include="mssqlscripter\mssqltoolsservice\__init__.py" />
    <Compile Include="mssqlscripter\mssqltoolsservice\external.py" />
    <Compile Include="setup.py" />
    <Compile Include="utility.py" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="doc\" />
    <Folder Include="mssqlscripter" />
    <Folder Include="mssqlscripter\jsonrpc" />
    <Folder Include="mssqlscripter\jsonrpc\contracts" />
    <Folder Include="mssqlscripter\jsonrpc\contracts\tests" />
    <Folder Include="mssqlscripter\jsonrpc\contracts\tests\scripting_baselines" />
    <Folder Include="mssqlscripter\jsonrpc\tests" />
    <Folder Include="mssqlscripter\tests" />
    <Folder Include="mssqlscripter\mssqltoolsservice\" />
  </ItemGroup>
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Python Tools\Microsoft.PythonTools.targets" />
</Project>

================================================
FILE: mssql-scripter.sln
================================================

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "mssql-scripter", "mssql-scripter.pyproj", "{F4BB6290-43F3-4F35-B26E-067C5EF8E64B}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{F4BB6290-43F3-4F35-B26E-067C5EF8E64B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{F4BB6290-43F3-4F35-B26E-067C5EF8E64B}.Release|Any CPU.ActiveCfg = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {1A0F24BB-2803-4A8C-9816-CB374FAAC673}
	EndGlobalSection
EndGlobal


================================================
FILE: mssqlscripter/__init__.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------


__version__ = '1.0.0a23'


================================================
FILE: mssqlscripter/__main__.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

import sys

import mssqlscripter.main

try:
    args = sys.argv[1:]
    exit_code = mssqlscripter.main.main(args)
    sys.exit(exit_code)
except EnvironmentError as error:
    sys.stderr.write(str(error))
    sys.exit(1)
except KeyboardInterrupt as error:
    sys.exit(2)
except Exception as error:
    sys.stderr.write(str(error))
    sys.exit(3)


================================================
FILE: mssqlscripter/argparser.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

import argparse
import getpass
import mssqlscripter
import os
import shutil
import sys

MSSQL_SCRIPTER_CONNECTION_STRING = u'MSSQL_SCRIPTER_CONNECTION_STRING'
MSSQL_SCRIPTER_PASSWORD = u'MSSQL_SCRIPTER_PASSWORD'


def parse_arguments(args):
    """
        Initialize parser with scripter options.
    """
    parser = argparse.ArgumentParser(
        prog=u'mssql-scripter',
        description=u'Microsoft SQL Server Scripter Command Line Tool. ' +
        'Version {}'.format(mssqlscripter.__version__))

    group_connection_options = parser.add_mutually_exclusive_group()
    group_connection_options.add_argument(
        u'--connection-string',
        dest=u'ConnectionString',
        metavar=u'',
        help=u'Connection string of database to script. If connection string and server are not supplied, defaults to value in environment variable MSSQL_SCRIPTER_CONNECTION_STRING.')
    group_connection_options.add_argument(
        u'-S', u'--server',
        dest=u'Server',
        metavar=u'',
        help=u'Server name.')

    parser.add_argument(
        u'-d', u'--database',
        dest=u'Database',
        metavar=u'',
        help=u'Database name.')

    parser.add_argument(
        u'-U', u'--user',
        dest=u'UserId',
        metavar=u'',
        help=u'Login ID for server.')

    parser.add_argument(
        u'-P', u'--password',
        dest=u'Password',
        metavar=u'',
        help=u'If not supplied, defaults to value in environment variable MSSQL_SCRIPTER_PASSWORD.')

    # Basic parameters.
    parser.add_argument(
        u'-f', u'--file-path',
        dest=u'FilePath',
        metavar=u'',
        default=None,
        help=u'File to script out to or directory name if scripting file per object.')

    parser.add_argument(
        u'--file-per-object',
        dest=u'ScriptDestination',
        action=u'store_const',
        const=u'ToFilePerObject',
        default=u'ToSingleFile',
        help=u'By default script to a single file. If supplied and given a directory for --file-path, script a file per object to that directory.')

    group_type_of_data = parser.add_mutually_exclusive_group()
    group_type_of_data.add_argument(
        u'--data-only',
        dest=u'TypeOfDataToScript',
        action=u'store_const',
        const=u'DataOnly',
        default=u'SchemaOnly',
        help=u'By default only the schema is scripted. if supplied, generate scripts that contains data only.')
    group_type_of_data.add_argument(
        u'--schema-and-data',
        dest=u'TypeOfDataToScript',
        action=u'store_const',
        const=u'SchemaAndData',
        default=u'SchemaOnly',
        help=u'By default only the schema is scripted. if supplied, generate scripts that contain schema and data.')

    group_create_drop = parser.add_mutually_exclusive_group()
    group_create_drop.add_argument(
        u'--script-create',
        dest=u'ScriptCreateDrop',
        action=u'store_const',
        const=u'ScriptCreate',
        default=u'ScriptCreate',
        help=u'Script object CREATE statements.')
    group_create_drop.add_argument(
        u'--script-drop',
        dest=u'ScriptCreateDrop',
        action=u'store_const',
        const=u'ScriptDrop',
        default=u'ScriptCreate',
        help=u'Script object DROP statements.')
    group_create_drop.add_argument(
        u'--script-drop-create',
        dest=u'ScriptCreateDrop',
        action=u'store_const',
        const=u'ScriptCreateDrop',
        default=u'ScriptCreate',
        help=u'Script object CREATE and DROP statements.')

    parser.add_argument(
        u'--target-server-version',
        dest=u'ScriptCompatibilityOption',
        choices=[
            '2005',
            '2008',
            '2008R2',
            '2012',
            '2014',
            '2016',
            'vNext',
            'AzureDB',
            'AzureDW'],
        default=u'2016',
        help=u'Script only features compatible with the specified SQL Version.')

    parser.add_argument(
        u'--target-server-edition',
        dest=u'TargetDatabaseEngineEdition',
        choices=[
            u'Standard',
            u'Personal',
            u'Express',
            u'Enterprise',
            u'Stretch'],
        default=u'Enterprise',
        help=u'Script only features compatible with the specified SQL Server database edition.')

    parser.add_argument(
        u'--include-objects',
        dest=u'IncludeObjects',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects to include in script.')

    parser.add_argument(
        u'--exclude-objects',
        dest=u'ExcludeObjects',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects to exclude from script.')

    parser.add_argument(
        u'--include-schemas',
        dest=u'IncludeSchemas',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects of this schema to include in script.')

    parser.add_argument(
        u'--exclude-schemas',
        dest=u'ExcludeSchemas',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects of this schema to exclude from script.')

    parser.add_argument(
        u'--include-types',
        dest=u'IncludeTypes',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects of this type to include in script.')

    parser.add_argument(
        u'--exclude-types',
        dest=u'ExcludeTypes',
        nargs=u'*',
        type=str,
        metavar=u'',
        help=u'Database objects of this type to exclude from script.')

    # General boolean Scripting Options
    parser.add_argument(
        u'--ansi-padding',
        dest=u'ScriptAnsiPadding',
        action=u'store_true',
        default=False,
        help=u'Generates ANSI Padding statements.')

    parser.add_argument(
        u'--append',
        dest=u'AppendToFile',
        action=u'store_true',
        default=False,
        help=u'Append script to file.')

    parser.add_argument(
        u'--check-for-existence',
        dest=u'IncludeIfNotExists',
        action=u'store_true',
        default=False,
        help=u'Check that an object with the given name exists before dropping or altering or that an object with the given name does not exist before creating.')

    parser.add_argument(
        u'-r',
        u'--continue-on-error',
        dest=u'ContinueScriptingOnError',
        action=u'store_true',
        default=False,
        help=u'Continue scripting on error.')

    parser.add_argument(
        u'--convert-uddts',
        dest=u'ConvertUDDTToBaseType',
        action=u'store_true',
        default=False,
        help=u'Convert user-defined data types to base types.')

    parser.add_argument(
        u'--include-dependencies',
        dest=u'GenerateScriptForDependentObjects',
        action=u'store_true',
        default=False,
        help=u'Generate script for the dependent objects for each object scripted.')

    parser.add_argument(
        u'--exclude-headers',
        dest=u'IncludeDescriptiveHeaders',
        action=u'store_false',
        default=True,
        help=u'Exclude descriptive headers for each object scripted.')

    parser.add_argument(
        u'--constraint-names',
        dest=u'IncludeSystemConstraintNames',
        action=u'store_true',
        default=False,
        help=u'Include system constraint names to enforce declarative referential integrity.')

    parser.add_argument(
        u'--unsupported-statements',
        dest=u'IncludeUnsupportedStatements',
        action=u'store_true',
        default=False,
        help=u'Include statements in the script that are not supported on the target SQL Server Version.')

    parser.add_argument(
        u'--disable-schema-qualification',
        dest=u'SchemaQualify',
        action=u'store_false',
        default=True,
        help=u'Do not prefix object names with the object schema.')

    parser.add_argument(
        u'--bindings',
        dest=u'Bindings',
        action=u'store_true',
        default=False,
        help=u'Script options to set binding options.')

    parser.add_argument(
        u'--collation',
        dest=u'Collation',
        action=u'store_true',
        default=False,
        help=u'Script the objects that use collation.')

    parser.add_argument(
        u'--exclude-defaults',
        dest=u'Default',
        action=u'store_false',
        default=True,
        help=u'Do not script the default values.')

    parser.add_argument(
        u'--exclude-extended-properties',
        dest=u'ScriptExtendedProperties',
        action=u'store_false',
        default=True,
        help=u'Exclude extended properties for each object scripted.')

    parser.add_argument(
        u'--logins',
        dest=u'ScriptLogins',
        action=u'store_true',
        default=False,
        help=u'Script all logins available on the server, passwords will not be scripted.')

    parser.add_argument(
        u'--object-permissions',
        dest=u'ScriptObjectLevelPermissions',
        action=u'store_true',
        default=False,
        help=u'Generate object-level permissions.')

    parser.add_argument(
        u'--owner',
        dest=u'ScriptOwner',
        action=u'store_true',
        default=False,
        help=u'Script owner for the objects.')

    parser.add_argument(
        u'--exclude-use-database',
        dest=u'ScriptUseDatabase',
        action=u'store_false',
        default=True,
        help=u'Do not generate USE DATABASE statement.')

    parser.add_argument(
        u'--statistics',
        dest=u'ScriptStatistics',
        action=u'store_const',
        const=u'ScriptStatsAll',
        default=u'ScriptStatsNone',
        help=u'Script all statistics.')

    parser.add_argument(
        u'--database-engine-type',
        dest=u'TargetDatabaseEngineType',
        # This parameter is determined based on engine edition and version in
        # the background. User cannot select it.
        action=u'store_const',
        const=u'SingleInstance',
        default=u'SingleInstance',
        help=argparse.SUPPRESS)

    # Table/View Options
    parser.add_argument(
        u'--change-tracking',
        dest=u'ScriptChangeTracking',
        action=u'store_true',
        default=False,
        help=u'Script the change tracking information.')

    parser.add_argument(
        u'--exclude-check-constraints',
        dest=u'ScriptCheckConstraints',
        action=u'store_false',
        default=True,
        help=u'Exclude check constraints for each table or view scripted.')

    parser.add_argument(
        u'--data-compressions',
        dest=u'ScriptDataCompressionOptions',
        action=u'store_true',
        default=False,
        help=u'Script the data compression information.')

    parser.add_argument(
        u'--exclude-foreign-keys',
        dest=u'ScriptForeignKeys',
        action=u'store_false',
        default=True,
        help=u'Exclude foreign keys for each table scripted.')

    parser.add_argument(
        u'--exclude-full-text-indexes',
        dest=u'ScriptFullTextIndexes',
        action=u'store_false',
        default=True,
        help=u'Exclude full-text indexes for each table or indexed view scripted.')

    parser.add_argument(
        u'--exclude-indexes',
        dest=u'ScriptIndexes',
        action=u'store_false',
        default=True,
        help=u'Exclude indexes (XML and clustered) for each table or indexed view scripted.')

    parser.add_argument(
        u'--exclude-primary-keys',
        dest=u'ScriptPrimaryKeys',
        action=u'store_false',
        default=True,
        help=u'Exclude primary keys for each table or view scripted.')

    parser.add_argument(
        u'--exclude-triggers',
        dest=u'ScriptTriggers',
        action=u'store_false',
        default=True,
        help=u'Exclude triggers for each table or view scripted.')

    parser.add_argument(
        u'--exclude-unique-keys',
        dest=u'UniqueKeys',
        action=u'store_false',
        default=True,
        help=u'Exclude unique keys for each table or view scripted.')

    # Configuration Options.
    parser.add_argument(
        u'--display-progress',
        dest=u'DisplayProgress',
        action=u'store_true',
        default=False,
        help=u'Display scripting progress.')

    parser.add_argument(
        u'--enable-toolsservice-logging',
        dest=u'EnableLogging',
        action=u'store_true',
        default=False,
        help=u'Enable verbose logging.')

    parser.add_argument(
        u'--version',
        action=u'version',
        version='{}'.format(mssqlscripter.__version__))

    parameters = parser.parse_args(args)
    verify_directory(parameters)

    if parameters.Server:
        build_connection_string(parameters)
    elif parameters.ConnectionString is None:
        # Check environment variable for connection string.
        if not get_connection_string_from_environment(parameters):
            sys.stdout.write(u'Please specify connection information using --connection-string or --server and/or --database --user.\n')
            sys.exit()

    map_server_options(parameters)
    return parameters


def verify_directory(parameters):
    """
        If creating a file per object, create the directory if it does not exist.
    """

    target_directory = parameters.FilePath
    if parameters.ScriptDestination == 'ToFilePerObject':
        if not os.path.exists(target_directory):
            os.makedirs(target_directory)
        # Give warning to user that target directory was not empty.
        if os.listdir(target_directory):
            sys.stdout.write(u'warning: Target directory {} was not empty.'.format(target_directory))


def get_connection_string_from_environment(parameters):
    """
        Get connection string from environment variable.
    """
    if MSSQL_SCRIPTER_CONNECTION_STRING in os.environ:
        parameters.ConnectionString = os.environ[MSSQL_SCRIPTER_CONNECTION_STRING]
        return True

    return False


def build_connection_string(parameters):
    """
        Build connection string.
    """
    connection_string = u'Server={};'.format(parameters.Server)
    if parameters.Database:
        connection_string += u'Database={};'.format(parameters.Database)

    # Standard connection if user id is supplied.
    if parameters.UserId:
        connection_string += u'User Id={};'.format(parameters.UserId)
        # If no password supplied, check for environment variable.
        if parameters.Password is None and MSSQL_SCRIPTER_PASSWORD in os.environ:
            parameters.Password = os.environ[MSSQL_SCRIPTER_PASSWORD]

        connection_string += u'Password={};'.format(parameters.Password or getpass.getpass())

    else:
        connection_string += u'Integrated Security=True;'

    parameters.ConnectionString = connection_string


def map_server_options(parameters):
    """
        Map short form to long form name and maps Azure versions to their appropriate editions.
    """
    azure_server_edition_map = {
        u'AzureDB': u'SqlAzureDatabaseEdition',
        u'AzureDW': u'SqlDatawarehouseEdition',
    }

    on_prem_server_edition_map = {
        u'Standard': u'SqlServerStandardEdition',
        u'Personal': u'SqlServerPersonalEdition',
        u'Express': u'SqlServerExpressEdition',
        u'Enterprise': u'SqlServerEnterpriseEdition',
        u'Stretch': u'SqlServerStretchDatabaseEdition',
    }

    on_prem_server_version_map = {
        u'2005': u'Script90Compat',
        u'2008': u'Script100Compat',
        u'2008R2': u'Script105Compat',
        u'2012': u'Script110Compat',
        u'2014': u'Script120Compat',
        u'2016': u'Script130Compat',
        u'vNext': u'Script140Compat',
    }

    target_server_version = parameters.ScriptCompatibilityOption
    target_server_edition = parameters.TargetDatabaseEngineEdition
    # When targetting Azure, only the edition matters.
    if u'Azure' in target_server_version:
        # SMO requires 120 compat or higher when scripting Azure or AzureDW.
        parameters.ScriptCompatibilityOption = u'Script130Compat'
        parameters.TargetDatabaseEngineEdition = azure_server_edition_map[
            target_server_version]
        parameters.TargetDatabaseEngineType = u'SqlAzure'

    else:
        parameters.ScriptCompatibilityOption = on_prem_server_version_map[target_server_version]
        parameters.TargetDatabaseEngineEdition = on_prem_server_edition_map[
            target_server_edition]
        parameters.TargetDatabaseEngineType = u'SingleInstance'

    return parameters


================================================
FILE: mssqlscripter/jsonrpc/README.md
================================================
Microsoft XPlat CLI common module
=================================

================================================
FILE: mssqlscripter/jsonrpc/__init__.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------


================================================
FILE: mssqlscripter/jsonrpc/contracts/__init__.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
import abc

ABC = abc.ABCMeta('ABC', (object,), {})  # compatibile with Python 2 *and* 3.


class Request(ABC):
    """
        Abstract request class.
    """
    @abc.abstractmethod
    def execute(self):
        """
            Executes the request.
        """
        pass

    @abc.abstractmethod
    def get_response(self):
        """
            Retrieves expected response.
        """
        pass

    @abc.abstractmethod
    def completed(self):
        """
            Return state of request.
        """
        pass


================================================
FILE: mssqlscripter/jsonrpc/contracts/scriptingservice.py
================================================
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from future.utils import iteritems
from mssqlscripter.jsonrpc.contracts import Request

import copy
import logging

logger = logging.getLogger(u'mssqlscripter.jsonrpc.contracts.scriptingservice')


class ScriptingRequest(Request):
    """
        SqlTools Service scripting service scripting request.
    """
    METHOD_NAME = u'scripting/script'

    def __init__(self, id, json_rpc_client, parameters):
        """
            Create a scripting request command.
        """
        assert id != 0
        self.id = id
        self.finished = False
        self.json_rpc_client = json_rpc_client
        self.params = ScriptingParams(parameters)
        self.decoder = ScriptingResponseDecoder()

    def execute(self):
        """
            submit scripting request to sql tools service.
        """
        logger.info(
            u'Submitting scripting request id: {} with targetfile: {}'.format(
                self.id, self.params.file_path))

        scrubbed_parameters = copy.deepcopy(self.params)
        scrubbed_parameters.connection_string = '*********'
        logger.debug(scrubbed_parameters.format())
        self.json_rpc_client.submit_request(
            self.METHOD_NAME, self.params.format(), self.id)

    def get_response(self):
        """
            Get latest response, event or exception if it occured.
        """
        try:
            response = self.json_rpc_client.get_response(self.id)
            decoded_response = None

            if response:
                logger.debug(response)
                # Decode response to either response or event type.
                decoded_response = self.decoder.decode_response(response)

                logger.debug(
                    u'Scripting request received response: {}'.format(decoded_response))
                if (isinstance(decoded_response, ScriptCompleteEvent)):
                    self.finished = True
                    self.json_rpc_client.request_finished(self.id)

            return decoded_response

        except Exception as error:
            # Return a scripting error event.
            self.finished = True
            self.json_rpc_client.request_finished(self.id)
            logger.debug('Scripting request received exception: {}'.format(str(error)))
            exception = {
                u'operationId': self.id,
                u'sequenceNumber': None,
                u'success': False,
                u'canceled': False,
                u'hasError': True,
                u'errorMessage': u'Scripting request encountered a exception',
                u'errorDetails': error.args,
            }

            return ScriptCompleteEvent(exception)

    def completed(self):
        """
            Get current request state.
        """
        return self.finished


class ScriptingParams(object):
    """
        Scripting request parameters.
    """

    def __init__(self, parameters):
        self.file_path = parameters[u'FilePath']
        self.connection_string = parameters[u'ConnectionString']
        self.script_destination = parameters[u'ScriptDestination']
        self.scripting_options = ScriptingOptions(parameters)

        self.include_schema = parameters[u'IncludeSchemas'] if u'IncludeSchemas' in parameters else None
        self.exclude_schema = parameters[u'ExcludeSchemas'] if u'ExcludeSchemas' in parameters else None
        self.include_type = parameters[u'IncludeTypes'] if u'IncludeTypes' in parameters else None
        self.exclude_type = parameters[u'ExcludeTypes'] if u'ExcludeTypes' in parameters else None

        # List of scripting objects.
        self.include_objects = ScriptingObjects(
            parameters[u'IncludeObjects'] if u'IncludeObjects' in parameters else None)
        self.exclude_objects = ScriptingObjects(
            parameters[u'ExcludeObjects'] if u'ExcludeObjects' in parameters else None)

    def format(self):
        """
            Format paramaters into a dictionary.
        """
        return {u'FilePath': self.file_path,
                u'ConnectionString': self.connection_string,
                u'IncludeObjectCriteria': self.include_objects.format(),
                u'ExcludeObjectCriteria': self.exclude_objects.format(),
                u'IncludeSchemas': self.include_schema,
                u'ExcludeSchemas': self.exclude_schema,
                u'IncludeTypes': self.include_type,
                u'ExcludeTypes': self.exclude_type,
                u'ScriptOptions': self.scripting_options.get_options(),
                u'ScriptDestination': self.script_destination}


class ScriptingObjects(object):
    """
        Represent a database object via it's type, schema, and name.
    """

    def __init__(self, scripting_objects):
        self.list_of_objects = []
        if scripting_objects:
            for item in scripting_objects:
                index = item.find('.')
                if index > 0:
                    schema = item[0:index]
                    name = item[index + 1:]
                else:
                    schema = None
                    name = item
                self.add_scripting_object(schema=schema, name=name)

    def add_scripting_object(self, script_type=None, schema=None, name=None):
        """
            Serialize scripting object into a JSON Scripting object.
        """
        object_dict = {
            u'Type': script_type,
            u'Schema': schema,
            u'Name': name
        }

        self.list_of_objects.append(object_dict)

    def format(self):
        return self.list_of_objects


class ScriptingOptions(object):
    """
        Advanced scripting options.
    """
    scripting_option_map = {
        u'TypeOfDataToScript': [
            u'SchemaAndData',
            u'DataOnly',
            u'SchemaOnly'],
        u'ScriptCreateDrop': [
            u'ScriptCreate',
            u'ScriptDrop',
            u'ScriptCreateDrop'],
        u'TargetDatabaseEngineType': [
            u'SingleInstance',
            u'SqlAzure'],
        u'ScriptStatistics': [
            u'ScriptStatsAll',
            u'ScriptStatsNone',
            u'ScriptStatsDll'],
        u'ScriptCompatibilityOption': [
            u'Script90Compat',
            u'Script100Compat',
            u'Script105Compat',
            u'Script110Compat',
            u'Script120Compat',
            u'Script130Compat',
            u'Script140Compat'],
        u'TargetDatabaseEngineEdition': [
            u'SqlServerStandardEdition',
            u'SqlServerPersonalEdition',
            u'SqlServerExpressEdition',
            u'SqlServerEnterpriseEdition',
            u'SqlServerStretchDatabaseEdition',
            u'SqlAzureDatabaseEdition',
            u'SqlDatawarehouseEdition']}

    def __init__(self, parameters=None):
        """
            Create default or non default scripting options based on parameters.
        """
        # General Default scripting options.
        self.ScriptAnsiPadding = False
        self.AppendToFile = False
        self.IncludeIfNotExists = False
        self.ContinueScriptingOnError = False
        self.ConvertUDDTToBaseType = False
        self.GenerateScriptForDependentObjects = False
        self.IncludeDescriptiveHeaders = False
        self.IncludeSystemConstraintNames = False
        self.IncludeUnsupportedStatements = False
        self.SchemaQualify = False
        self.Bindings = False
        self.Collation = False
        self.Default = False
        self.ScriptExtendedProperties = False
        self.ScriptLogins = False
        self.ScriptObjectLevelPermissions = False
        self.ScriptOwner = False
        self.ScriptUseDatabase = False

        # Default Table/View options.
        self.ScriptChangeTracking = False
        self.ScriptCheckConstraints = False
        self.ScriptDataCompressionOptions = False
        self.ScriptForeignKeys = False
        self.ScriptFullTextIndexes = False
        self.ScriptIndexes = False
        self.ScriptPrimaryKeys = False
        self.ScriptTriggers = False
        self.UniqueKeys = False

        # Scripting options that are limited.
        self.TypeOfDataToScript = u'SchemaOnly'
        self.ScriptCreateDrop = u'ScriptCreate'
        self.TargetDatabaseEngineType = u'SingleInstance'
        self.ScriptStatistics = u'ScriptStatsNone'
        self.ScriptCompatibilityOption = u'Script140Compat'
        self.TargetDatabaseEngineEdition = u'SqlServerStandardEdition'

        if parameters:
            self.update_options(parameters)

    def update_options(self, parameters):
        """
            Update default options to passed in options.
        """
        default_options = vars(self)
        for option, value in iteritems(parameters):
            if option in default_options:
                if option in self.scripting_option_map:
                    if value not in self.scripting_option_map[option]:
                        raise ValueError(
                            u'Option: {} has invalid value: {}'.format(
                                option, value))
                elif not isinstance(value, bool):
                    raise ValueError(
                        u'Option: {} has unexpected value type" {}'.format(
                            option, value))
                # set the value if we pass all the checks.
                default_options[option] = value

    def get_options(self):
        """
            Return a dictionary of all options
        """
        return vars(self)

#
#   Various Scripting Events.
#


class ScriptCompleteEvent(object):
    def __init__(self, params):
        self.operation_id = params[u'operationId']
        self.sequenceNumber = params[u'sequenceNumber']
        self.error_details = params[u'errorDetails']
        self.error_message = params[u'errorMessage']
        self.has_error = params[u'hasError']
        self.canceled = params[u'canceled']
        self.success = params[u'success']


class ScriptPlanNotificationEvent(object):
    def __init__(self, params):
        self.operation_id = params[u'operationId']
        self.sequenceNumber = params[u'sequenceNumber']
        self.scripting_objects = params[u'scriptingObjects']
        self.count = params[u'count']


class ScriptProgressNotificationEvent(object):
    def __init__(self, params):
        self.operation_id = params[u'operationId']
        self.sequenceNumber = params[u'sequenceNumber']
        self.scripting_object = params[u'scriptingObject']
        self.status = params[u'status']
        self.completed_count = params[u'completedCount']
        self.total_count = params[u'totalCount']


class ScriptResponse(object):
    def __init__(self, params):
        self.operation_id = params[u'operationId']


class ScriptingResponseDecoder(object):
    """
        Decode response dictionary into scripting parameter type.
    """

    def __init__(self):
        # response map.
        self.response_dispatcher = {
            u'scripting/scriptComplete': ScriptCompleteEvent,
            u'scripting/scriptPlanNotification': ScriptPlanNotificationEvent,
            u'scripting/scriptProgressNotification': ScriptProgressNotificationEvent,
            u'id': ScriptResponse}

    def decode_response(self, obj):
        """
            Decode valid response.
        """
        if u'method' in obj:
            response_name = obj[u'method']
            if response_name in self.response_dispatcher:
                # Handle event received.
                return self.response_dispatcher[response_name](obj[u'params'])

        if u'id' in obj and u'result' in obj:
            # Handle response received.
            return self.response_dispatcher[u'id'](obj[u'result'])

        logger.debug(
            u'Unable to decode response to a event type: {}'.format(obj))
        # Unable to decode, return json string.
        return obj


================================================
FILE: mssqlscripter/jsonrpc/contracts/tests/scripting_baselines/adventureworks2014_baseline.txt
================================================
Content-Length: 90

{"jsonrpc":"2.0","id":"1","result":{"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398"}}Content-Length: 8966

{"jsonrpc":"2.0","method":"scripting/scriptPlanNotification","params":{"scriptingObjects":[{"type":"Database","schema":null,"name":"AdventureWorks2014"},{"type":"Schema","schema":null,"name":"HumanResources"},{"type":"Schema","schema":null,"name":"Person"},{"type":"Schema","schema":null,"name":"Production"},{"type":"Schema","schema":null,"name":"Purchasing"},{"type":"Schema","schema":null,"name":"Sales"},{"type":"FullTextCatalog","schema":null,"name":"AW2014FullTextCatalog"},{"type":"XmlSchemaCollection","schema":"HumanResources","name":"HRResumeSchemaCollection"},{"type":"XmlSchemaCollection","schema":"Person","name":"AdditionalContactInfoSchemaCollection"},{"type":"XmlSchemaCollection","schema":"Person","name":"IndividualSurveySchemaCollection"},{"type":"XmlSchemaCollection","schema":"Production","name":"ManuInstructionsSchemaCollection"},{"type":"XmlSchemaCollection","schema":"Production","name":"ProductDescriptionSchemaCollection"},{"type":"XmlSchemaCollection","schema":"Sales","name":"StoreSurveySchemaCollection"},{"type":"UserDefinedDataType","schema":"dbo","name":"AccountNumber"},{"type":"UserDefinedDataType","schema":"dbo","name":"Flag"},{"type":"UserDefinedDataType","schema":"dbo","name":"Name"},{"type":"UserDefinedDataType","schema":"dbo","name":"NameStyle"},{"type":"UserDefinedDataType","schema":"dbo","name":"OrderNumber"},{"type":"UserDefinedDataType","schema":"dbo","name":"Phone"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetAccountingEndDate"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetAccountingStartDate"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetContactInformation"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetDocumentStatusText"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductDealerPrice"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductListPrice"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductStandardCost"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetPurchaseOrderStatusText"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetSalesOrderStatusText"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetStock"},{"type":"Table","schema":"Person","name":"BusinessEntityContact"},{"type":"Table","schema":"Person","name":"ContactType"},{"type":"Table","schema":"Person","name":"EmailAddress"},{"type":"Table","schema":"Person","name":"Person"},{"type":"Table","schema":"Person","name":"PersonPhone"},{"type":"Table","schema":"Person","name":"PhoneNumberType"},{"type":"Table","schema":"Sales","name":"Store"},{"type":"View","schema":"Sales","name":"vStoreWithContacts"},{"type":"Table","schema":"Person","name":"Address"},{"type":"Table","schema":"Person","name":"AddressType"},{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},{"type":"Table","schema":"Person","name":"CountryRegion"},{"type":"Table","schema":"Person","name":"StateProvince"},{"type":"View","schema":"Sales","name":"vStoreWithAddresses"},{"type":"Table","schema":"Purchasing","name":"Vendor"},{"type":"View","schema":"Purchasing","name":"vVendorWithContacts"},{"type":"View","schema":"Purchasing","name":"vVendorWithAddresses"},{"type":"View","schema":"Person","name":"vAdditionalContactInfo"},{"type":"Table","schema":"HumanResources","name":"Employee"},{"type":"View","schema":"HumanResources","name":"vEmployee"},{"type":"Table","schema":"HumanResources","name":"Department"},{"type":"Table","schema":"HumanResources","name":"EmployeeDepartmentHistory"},{"type":"View","schema":"HumanResources","name":"vEmployeeDepartment"},{"type":"Table","schema":"HumanResources","name":"Shift"},{"type":"View","schema":"HumanResources","name":"vEmployeeDepartmentHistory"},{"type":"UserDefinedFunction","schema":"dbo","name":"ufnLeadingZeros"},{"type":"Table","schema":"Sales","name":"Customer"},{"type":"View","schema":"Sales","name":"vIndividualCustomer"},{"type":"View","schema":"Sales","name":"vPersonDemographics"},{"type":"Table","schema":"HumanResources","name":"JobCandidate"},{"type":"View","schema":"HumanResources","name":"vJobCandidate"},{"type":"View","schema":"HumanResources","name":"vJobCandidateEmployment"},{"type":"View","schema":"HumanResources","name":"vJobCandidateEducation"},{"type":"Table","schema":"Production","name":"ProductModel"},{"type":"View","schema":"Production","name":"vProductModelCatalogDescription"},{"type":"View","schema":"Production","name":"vProductModelInstructions"},{"type":"Table","schema":"Sales","name":"SalesPerson"},{"type":"Table","schema":"Sales","name":"SalesTerritory"},{"type":"View","schema":"Sales","name":"vSalesPerson"},{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},{"type":"View","schema":"Sales","name":"vSalesPersonSalesByFiscalYears"},{"type":"View","schema":"Sales","name":"vStoreWithDemographics"},{"type":"Table","schema":"Production","name":"ProductDescription"},{"type":"Table","schema":"Production","name":"ProductModelProductDescriptionCulture"},{"type":"Table","schema":"Production","name":"Product"},{"type":"View","schema":"Production","name":"vProductAndDescription"},{"type":"View","schema":"Person","name":"vStateProvinceCountryRegion"},{"type":"Table","schema":"dbo","name":"AWBuildVersion"},{"type":"Table","schema":"dbo","name":"DatabaseLog"},{"type":"Table","schema":"dbo","name":"ErrorLog"},{"type":"Table","schema":"HumanResources","name":"EmployeePayHistory"},{"type":"Table","schema":"Person","name":"BusinessEntity"},{"type":"Table","schema":"Person","name":"Password"},{"type":"Table","schema":"Production","name":"BillOfMaterials"},{"type":"Table","schema":"Production","name":"Culture"},{"type":"Table","schema":"Production","name":"Document"},{"type":"Table","schema":"Production","name":"Illustration"},{"type":"Table","schema":"Production","name":"Location"},{"type":"Table","schema":"Production","name":"ProductCategory"},{"type":"Table","schema":"Production","name":"ProductCostHistory"},{"type":"Table","schema":"Production","name":"ProductDocument"},{"type":"Table","schema":"Production","name":"ProductInventory"},{"type":"Table","schema":"Production","name":"ProductListPriceHistory"},{"type":"Table","schema":"Production","name":"ProductModelIllustration"},{"type":"Table","schema":"Production","name":"ProductPhoto"},{"type":"Table","schema":"Production","name":"ProductProductPhoto"},{"type":"Table","schema":"Production","name":"ProductReview"},{"type":"Table","schema":"Production","name":"ProductSubcategory"},{"type":"Table","schema":"Production","name":"ScrapReason"},{"type":"Table","schema":"Production","name":"TransactionHistory"},{"type":"Table","schema":"Production","name":"TransactionHistoryArchive"},{"type":"Table","schema":"Production","name":"UnitMeasure"},{"type":"Table","schema":"Production","name":"WorkOrder"},{"type":"Table","schema":"Production","name":"WorkOrderRouting"},{"type":"Table","schema":"Purchasing","name":"ProductVendor"},{"type":"Table","schema":"Purchasing","name":"PurchaseOrderDetail"},{"type":"Table","schema":"Purchasing","name":"PurchaseOrderHeader"},{"type":"Table","schema":"Purchasing","name":"ShipMethod"},{"type":"Table","schema":"Sales","name":"CountryRegionCurrency"},{"type":"Table","schema":"Sales","name":"CreditCard"},{"type":"Table","schema":"Sales","name":"Currency"},{"type":"Table","schema":"Sales","name":"CurrencyRate"},{"type":"Table","schema":"Sales","name":"PersonCreditCard"},{"type":"Table","schema":"Sales","name":"SalesOrderDetail"},{"type":"Table","schema":"Sales","name":"SalesOrderHeaderSalesReason"},{"type":"Table","schema":"Sales","name":"SalesPersonQuotaHistory"},{"type":"Table","schema":"Sales","name":"SalesReason"},{"type":"Table","schema":"Sales","name":"SalesTaxRate"},{"type":"Table","schema":"Sales","name":"SalesTerritoryHistory"},{"type":"Table","schema":"Sales","name":"ShoppingCartItem"},{"type":"Table","schema":"Sales","name":"SpecialOffer"},{"type":"Table","schema":"Sales","name":"SpecialOfferProduct"},{"type":"StoredProcedure","schema":"dbo","name":"uspGetBillOfMaterials"},{"type":"StoredProcedure","schema":"dbo","name":"uspGetEmployeeManagers"},{"type":"StoredProcedure","schema":"dbo","name":"uspGetManagerEmployees"},{"type":"StoredProcedure","schema":"dbo","name":"uspGetWhereUsedProductID"},{"type":"StoredProcedure","schema":"dbo","name":"uspLogError"},{"type":"StoredProcedure","schema":"dbo","name":"uspPrintError"},{"type":"StoredProcedure","schema":"dbo","name":"uspSearchCandidateResumes"},{"type":"StoredProcedure","schema":"HumanResources","name":"uspUpdateEmployeeHireInfo"},{"type":"StoredProcedure","schema":"HumanResources","name":"uspUpdateEmployeeLogin"},{"type":"StoredProcedure","schema":"HumanResources","name":"uspUpdateEmployeePersonalInfo"},{"type":"DdlTrigger","schema":null,"name":"ddlDatabaseTriggerLog"},{"type":"ExtendedProperty","schema":null,"name":"MS_Description"}],"count":133,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":1}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Database","schema":null,"name":"AdventureWorks2014"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":2}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Schema","schema":null,"name":"HumanResources"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":3}}Content-Length: 310

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Schema","schema":null,"name":"Person"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":4}}Content-Length: 314

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Schema","schema":null,"name":"Production"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":5}}Content-Length: 314

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Schema","schema":null,"name":"Purchasing"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":6}}Content-Length: 309

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Schema","schema":null,"name":"Sales"},"status":"Progress","completedCount":0,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":7}}Content-Length: 335

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"FullTextCatalog","schema":null,"name":"AW2014FullTextCatalog"},"status":"Completed","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":8}}Content-Length: 353

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"HumanResources","name":"HRResumeSchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":9}}Content-Length: 359

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"Person","name":"AdditionalContactInfoSchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":10}}Content-Length: 354

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"Person","name":"IndividualSurveySchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":11}}Content-Length: 358

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"Production","name":"ManuInstructionsSchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":12}}Content-Length: 360

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"Production","name":"ProductDescriptionSchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":13}}Content-Length: 348

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"XmlSchemaCollection","schema":"Sales","name":"StoreSurveySchemaCollection"},"status":"Progress","completedCount":1,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":14}}Content-Length: 333

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"AccountNumber"},"status":"Completed","completedCount":2,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":15}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"Flag"},"status":"Completed","completedCount":3,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":16}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"Name"},"status":"Completed","completedCount":4,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":17}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"NameStyle"},"status":"Completed","completedCount":5,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":18}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"OrderNumber"},"status":"Completed","completedCount":6,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":19}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedDataType","schema":"dbo","name":"Phone"},"status":"Completed","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":20}}Content-Length: 342

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetAccountingEndDate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":21}}Content-Length: 344

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetAccountingStartDate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":22}}Content-Length: 343

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetContactInformation"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":23}}Content-Length: 343

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetDocumentStatusText"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":24}}Content-Length: 343

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductDealerPrice"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":25}}Content-Length: 341

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductListPrice"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":26}}Content-Length: 344

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetProductStandardCost"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":27}}Content-Length: 348

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetPurchaseOrderStatusText"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":28}}Content-Length: 345

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetSalesOrderStatusText"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":29}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnGetStock"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":30}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":31}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"ContactType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":32}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"EmailAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":33}}Content-Length: 314

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":34}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"PersonPhone"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":35}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"PhoneNumberType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":36}}Content-Length: 312

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Store"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":37}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vStoreWithContacts"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":38}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":39}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"AddressType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":40}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":41}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"CountryRegion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":42}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"StateProvince"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":43}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vStoreWithAddresses"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":44}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"Vendor"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":45}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Purchasing","name":"vVendorWithContacts"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":46}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Purchasing","name":"vVendorWithAddresses"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":47}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Person","name":"vAdditionalContactInfo"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":48}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":49}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vEmployee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":50}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Department"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":51}}Content-Length: 341

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeeDepartmentHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":52}}Content-Length: 334

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vEmployeeDepartment"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":53}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Shift"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":54}}Content-Length: 341

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vEmployeeDepartmentHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":55}}Content-Length: 334

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"UserDefinedFunction","schema":"dbo","name":"ufnLeadingZeros"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":56}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Customer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":57}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vIndividualCustomer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":58}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vPersonDemographics"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":59}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"JobCandidate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":60}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vJobCandidate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":61}}Content-Length: 338

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vJobCandidateEmployment"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":62}}Content-Length: 337

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"HumanResources","name":"vJobCandidateEducation"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":63}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModel"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":64}}Content-Length: 342

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Production","name":"vProductModelCatalogDescription"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":65}}Content-Length: 336

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Production","name":"vProductModelInstructions"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":66}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesPerson"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":67}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTerritory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":68}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vSalesPerson"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":69}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":70}}Content-Length: 336

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vSalesPersonSalesByFiscalYears"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":71}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Sales","name":"vStoreWithDemographics"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":72}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductDescription"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":73}}Content-Length: 349

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModelProductDescriptionCulture"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":74}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Product"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":75}}Content-Length: 333

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Production","name":"vProductAndDescription"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":76}}Content-Length: 333

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Production","name":"vProductAndDescription"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":77}}Content-Length: 334

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Person","name":"vStateProvinceCountryRegion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":78}}Content-Length: 334

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"View","schema":"Person","name":"vStateProvinceCountryRegion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":79}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"dbo","name":"AWBuildVersion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":80}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"dbo","name":"DatabaseLog"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":81}}Content-Length: 313

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"dbo","name":"ErrorLog"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":82}}Content-Length: 334

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeePayHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":83}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntity"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":84}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Password"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":85}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"BillOfMaterials"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":86}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"BillOfMaterials"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":87}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Culture"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":88}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Document"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":89}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Illustration"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":90}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Location"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":91}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductCategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":92}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductCostHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":93}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductDocument"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":94}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductInventory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":95}}Content-Length: 335

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductListPriceHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":96}}Content-Length: 336

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModelIllustration"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":97}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductPhoto"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":98}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductProductPhoto"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":99}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductReview"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":100}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductSubcategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":101}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ScrapReason"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":102}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":103}}Content-Length: 338

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistoryArchive"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":104}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"UnitMeasure"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":105}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"WorkOrder"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":106}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"WorkOrderRouting"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":107}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ProductVendor"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":108}}Content-Length: 332

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"PurchaseOrderDetail"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":109}}Content-Length: 332

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"PurchaseOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":110}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ShipMethod"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":111}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CountryRegionCurrency"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":112}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CreditCard"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":113}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Currency"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":114}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CurrencyRate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":115}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"PersonCreditCard"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":116}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderDetail"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":117}}Content-Length: 335

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeaderSalesReason"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":118}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesPersonQuotaHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":119}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesReason"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":120}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTaxRate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":121}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTerritoryHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":122}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"ShoppingCartItem"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":123}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SpecialOffer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":124}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SpecialOfferProduct"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":125}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Department"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":126}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":127}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":128}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":129}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":130}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":131}}Content-Length: 342

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeeDepartmentHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":132}}Content-Length: 342

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeeDepartmentHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":133}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"JobCandidate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":134}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Shift"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":135}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Shift"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":136}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":137}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":138}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":139}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"AddressType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":140}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"AddressType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":141}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntity"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":142}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":143}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":144}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":145}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":146}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":147}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":148}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"ContactType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":149}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"CountryRegion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":150}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"EmailAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":151}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":152}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":153}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"PersonPhone"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":154}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"StateProvince"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":155}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"StateProvince"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":156}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"StateProvince"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":157}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"BillOfMaterials"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":158}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Culture"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":159}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Document"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":160}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Document"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":161}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Document"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":162}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Location"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":163}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Product"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":164}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Product"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":165}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"Product"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":166}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductCategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":167}}Content-Length: 328

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductCategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":168}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductDescription"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":169}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModel"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":170}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModel"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":171}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductReview"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":172}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductSubcategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":173}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductSubcategory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":174}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ScrapReason"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":175}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":176}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":177}}Content-Length: 338

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistoryArchive"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":178}}Content-Length: 338

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"TransactionHistoryArchive"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":179}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"UnitMeasure"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":180}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"WorkOrder"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":181}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"WorkOrder"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":182}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"WorkOrderRouting"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":183}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ProductVendor"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":184}}Content-Length: 326

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ProductVendor"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":185}}Content-Length: 332

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"PurchaseOrderDetail"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":186}}Content-Length: 332

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"PurchaseOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":187}}Content-Length: 332

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"PurchaseOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":188}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ShipMethod"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":189}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"ShipMethod"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":190}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Purchasing","name":"Vendor"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":191}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CountryRegionCurrency"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":192}}Content-Length: 318

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CreditCard"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":193}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Currency"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":194}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"CurrencyRate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":195}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Customer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":196}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Customer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":197}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Customer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":198}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderDetail"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":199}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderDetail"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":200}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":201}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":202}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":203}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesOrderHeader"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":204}}Content-Length: 319

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesPerson"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":205}}Content-Length: 331

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesPersonQuotaHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":206}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTaxRate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":207}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTaxRate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":208}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTerritory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":209}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTerritory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":210}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SalesTerritoryHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":211}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"ShoppingCartItem"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":212}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SpecialOffer"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":213}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SpecialOfferProduct"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":214}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"SpecialOfferProduct"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":215}}Content-Length: 313

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Store"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":216}}Content-Length: 313

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Store"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":217}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":218}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":219}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModel"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":220}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Production","name":"ProductModel"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":221}}Content-Length: 313

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Sales","name":"Store"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":222}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":223}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":224}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":225}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"dbo","name":"AWBuildVersion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":226}}Content-Length: 314

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"dbo","name":"ErrorLog"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":227}}Content-Length: 327

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Department"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":228}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":229}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":230}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":231}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":232}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":233}}Content-Length: 325

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Employee"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":234}}Content-Length: 342

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeeDepartmentHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":235}}Content-Length: 335

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"EmployeePayHistory"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":236}}Content-Length: 329

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"JobCandidate"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":237}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"HumanResources","name":"Shift"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":238}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":239}}Content-Length: 316

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Address"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":240}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"AddressType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":241}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"AddressType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":242}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntity"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":243}}Content-Length: 323

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntity"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":244}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":245}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":246}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":247}}Content-Length: 330

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"BusinessEntityContact"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":248}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"ContactType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":249}}Content-Length: 322

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"CountryRegion"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":250}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"EmailAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":251}}Content-Length: 321

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"EmailAddress"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":252}}Content-Length: 317

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Password"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":253}}Content-Length: 317

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Password"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":254}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":255}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":256}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":257}}Content-Length: 315

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"Person"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":258}}Content-Length: 320

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"PersonPhone"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetails":null,"errorMessage":null,"operationId":"bf7515c7-2a05-4e96-b44d-8243413be398","sequenceNumber":259}}Content-Length: 324

{"jsonrpc":"2.0","method":"scripting/scriptProgressNotification","params":{"scriptingObject":{"type":"Table","schema":"Person","name":"PhoneNumberType"},"status":"Progress","completedCount":7,"totalCount":133,"errorDetai
Download .txt
gitextract_418dqmc9/

├── .bumpversion.cfg
├── .gitattributes
├── .gitignore
├── .travis.yml
├── LICENSE.txt
├── MANIFEST.in
├── README.rst
├── SECURITY.md
├── appveyor.yml
├── build.py
├── dev_requirements.txt
├── dev_setup.py
├── doc/
│   ├── architecture_guide.md
│   ├── development_guide.md
│   ├── documentation_page.md
│   ├── installation_guide.md
│   ├── pypi_release_steps.md
│   ├── sequence_diagram.puml
│   ├── usage_guide.md
│   └── virtual_environment_info.md
├── dos2unix.py
├── mssql-scripter
├── mssql-scripter.bat
├── mssql-scripter.pyproj
├── mssql-scripter.sln
├── mssqlscripter/
│   ├── __init__.py
│   ├── __main__.py
│   ├── argparser.py
│   ├── jsonrpc/
│   │   ├── README.md
│   │   ├── __init__.py
│   │   ├── contracts/
│   │   │   ├── __init__.py
│   │   │   ├── scriptingservice.py
│   │   │   └── tests/
│   │   │       ├── scripting_baselines/
│   │   │       │   └── adventureworks2014_baseline.txt
│   │   │       └── test_scripting.py
│   │   ├── jsonrpcclient.py
│   │   └── tests/
│   │       ├── test_jsonrpc.py
│   │       └── test_jsonrpcclient.py
│   ├── main.py
│   ├── mssqltoolsservice/
│   │   ├── __init__.py
│   │   └── external.py
│   ├── scriptercallbacks.py
│   ├── scripterlogging.py
│   ├── sqltoolsclient.py
│   ├── temp.txt
│   └── tests/
│       ├── test_argparser.py
│       └── test_sqltoolsclient.py
├── setup.cfg
├── setup.py
├── tox.ini
└── utility.py
Download .txt
SYMBOL INDEX (126 symbols across 17 files)

FILE: build.py
  function print_heading (line 20) | def print_heading(heading, f=None):
  function build (line 24) | def build(platform_names):
  function _upload_index_file (line 57) | def _upload_index_file(service, blob_name, title, links):
  function _gen_pkg_index_html (line 76) | def _gen_pkg_index_html(service, pkg_name):
  function _upload_package (line 88) | def _upload_package(service, file_path, pkg_name):
  function validate_package (line 99) | def validate_package(platform_names):
  function publish_daily (line 116) | def publish_daily(platforms_names):
  function publish_official (line 136) | def publish_official(platforms_names):

FILE: mssqlscripter/argparser.py
  function parse_arguments (line 17) | def parse_arguments(args):
  function verify_directory (line 432) | def verify_directory(parameters):
  function get_connection_string_from_environment (line 446) | def get_connection_string_from_environment(parameters):
  function build_connection_string (line 457) | def build_connection_string(parameters):
  function map_server_options (line 480) | def map_server_options(parameters):

FILE: mssqlscripter/jsonrpc/contracts/__init__.py
  class Request (line 10) | class Request(ABC):
    method execute (line 15) | def execute(self):
    method get_response (line 22) | def get_response(self):
    method completed (line 29) | def completed(self):

FILE: mssqlscripter/jsonrpc/contracts/scriptingservice.py
  class ScriptingRequest (line 15) | class ScriptingRequest(Request):
    method __init__ (line 21) | def __init__(self, id, json_rpc_client, parameters):
    method execute (line 32) | def execute(self):
    method get_response (line 46) | def get_response(self):
    method completed (line 84) | def completed(self):
  class ScriptingParams (line 91) | class ScriptingParams(object):
    method __init__ (line 96) | def __init__(self, parameters):
    method format (line 113) | def format(self):
  class ScriptingObjects (line 129) | class ScriptingObjects(object):
    method __init__ (line 134) | def __init__(self, scripting_objects):
    method add_scripting_object (line 147) | def add_scripting_object(self, script_type=None, schema=None, name=None):
    method format (line 159) | def format(self):
  class ScriptingOptions (line 163) | class ScriptingOptions(object):
    method __init__ (line 200) | def __init__(self, parameters=None):
    method update_options (line 246) | def update_options(self, parameters):
    method get_options (line 265) | def get_options(self):
  class ScriptCompleteEvent (line 276) | class ScriptCompleteEvent(object):
    method __init__ (line 277) | def __init__(self, params):
  class ScriptPlanNotificationEvent (line 287) | class ScriptPlanNotificationEvent(object):
    method __init__ (line 288) | def __init__(self, params):
  class ScriptProgressNotificationEvent (line 295) | class ScriptProgressNotificationEvent(object):
    method __init__ (line 296) | def __init__(self, params):
  class ScriptResponse (line 305) | class ScriptResponse(object):
    method __init__ (line 306) | def __init__(self, params):
  class ScriptingResponseDecoder (line 310) | class ScriptingResponseDecoder(object):
    method __init__ (line 315) | def __init__(self):
    method decode_response (line 323) | def decode_response(self, obj):

FILE: mssqlscripter/jsonrpc/contracts/tests/test_scripting.py
  class ScriptingRequestTests (line 15) | class ScriptingRequestTests(unittest.TestCase):
    method test_succesful_scripting_response_AdventureWorks2014 (line 20) | def test_succesful_scripting_response_AdventureWorks2014(self):
    method test_scripting_criteria_parameters (line 52) | def test_scripting_criteria_parameters(self):
    method test_scripting_response_decoder (line 71) | def test_scripting_response_decoder(self):
    method test_scripting_response_decoder_invalid (line 122) | def test_scripting_response_decoder_invalid(self):
    method test_default_script_options (line 139) | def test_default_script_options(self):
    method test_nondefault_script_options (line 181) | def test_nondefault_script_options(self):
    method test_invalid_script_options (line 233) | def test_invalid_script_options(self):
    method test_script_database_params_format (line 247) | def test_script_database_params_format(self):
    method verify_response_count (line 312) | def verify_response_count(
    method generate_new_baseline (line 356) | def generate_new_baseline(self, file_name):
    method get_test_baseline (line 394) | def get_test_baseline(self, file_name):

FILE: mssqlscripter/jsonrpc/jsonrpcclient.py
  class JsonRpcClient (line 16) | class JsonRpcClient(object):
    method __init__ (line 24) | def __init__(self, in_stream, out_stream):
    method start (line 35) | def start(self):
    method submit_request (line 53) | def submit_request(self, method, params, id=None):
    method request_finished (line 63) | def request_finished(self, id):
    method get_response (line 71) | def get_response(self, id=0):
    method _listen_for_request (line 87) | def _listen_for_request(self):
    method _listen_for_response (line 111) | def _listen_for_response(self):
    method _record_exception (line 155) | def _record_exception(self, ex, thread_name):
    method shutdown (line 164) | def shutdown(self):
  class ReadState (line 181) | class ReadState(enum.Enum):
  class JsonRpcWriter (line 186) | class JsonRpcWriter(object):
    method __init__ (line 192) | def __init__(self, stream, encoding=None):
    method send_request (line 196) | def send_request(self, method, params, id=None):
    method close (line 222) | def close(self):
  class JsonRpcReader (line 232) | class JsonRpcReader(object):
    method __init__ (line 242) | def __init__(self, stream, encoding=None):
    method read_response (line 256) | def read_response(self):
    method read_next_chunk (line 294) | def read_next_chunk(self):
    method try_read_headers (line 331) | def try_read_headers(self):
    method try_read_content (line 392) | def try_read_content(self, content):
    method trim_buffer_and_resize (line 409) | def trim_buffer_and_resize(self, bytes_to_remove):
    method close (line 431) | def close(self):

FILE: mssqlscripter/jsonrpc/tests/test_jsonrpc.py
  class JsonRpcTest (line 11) | class JsonRpcTest(unittest.TestCase):
    method test_basic_response (line 16) | def test_basic_response(self):
    method test_basic_request (line 29) | def test_basic_request(self):
    method test_nested_request (line 56) | def test_nested_request(self):
    method test_response_multiple_headers (line 88) | def test_response_multiple_headers(self):
    method test_incorrect_header_formats (line 102) | def test_incorrect_header_formats(self):
    method test_invalid_json_response (line 129) | def test_invalid_json_response(self):
    method test_invalid_content_length_value_response (line 139) | def test_invalid_content_length_value_response(self):
    method test_stream_closes_during_read_and_write (line 149) | def test_stream_closes_during_read_and_write(self):
    method test_trigger_buffer_resize (line 180) | def test_trigger_buffer_resize(self):
    method test_max_buffer_resize (line 196) | def test_max_buffer_resize(self):
    method test_read_state (line 212) | def test_read_state(self):
    method test_case_insensitive_header (line 226) | def test_case_insensitive_header(self):

FILE: mssqlscripter/jsonrpc/tests/test_jsonrpcclient.py
  class JsonRpcClientTests (line 13) | class JsonRpcClientTests(unittest.TestCase):
    method test_request_enqueued (line 18) | def test_request_enqueued(self):
    method test_response_dequeued (line 44) | def test_response_dequeued(self):
    method test_submit_simple_request (line 65) | def test_submit_simple_request(self):
    method test_send_multiple_request (line 94) | def test_send_multiple_request(self):
    method test_normal_shutdown (line 135) | def test_normal_shutdown(self):
    method test_send_invalid_request (line 158) | def test_send_invalid_request(self):
    method test_receive_invalid_response_exception (line 170) | def test_receive_invalid_response_exception(self):
    method test_response_stream_closed_exception (line 195) | def test_response_stream_closed_exception(self):
    method test_stream_has_no_response (line 220) | def test_stream_has_no_response(self):
    method test_stream_closed_during_process (line 239) | def test_stream_closed_during_process(self):
    method test_get_response_with_id (line 266) | def test_get_response_with_id(self):
    method shutdown_background_threads (line 294) | def shutdown_background_threads(self, test_client):

FILE: mssqlscripter/main.py
  function main (line 26) | def main(args):

FILE: mssqlscripter/mssqltoolsservice/__init__.py
  function get_executable_path (line 13) | def get_executable_path():

FILE: mssqlscripter/mssqltoolsservice/external.py
  function copy_sqltoolsservice (line 30) | def copy_sqltoolsservice(platform):
  function clean_up_sqltoolsservice (line 59) | def clean_up_sqltoolsservice():

FILE: mssqlscripter/scriptercallbacks.py
  function handle_response (line 9) | def handle_response(response, display=False):

FILE: mssqlscripter/scripterlogging.py
  function get_config_log_dir (line 11) | def get_config_log_dir():
  function get_config_log_file (line 21) | def get_config_log_file():
  function initialize_logger (line 28) | def initialize_logger():

FILE: mssqlscripter/sqltoolsclient.py
  class SqlToolsClient (line 13) | class SqlToolsClient(object):
    method __init__ (line 18) | def __init__(self, input_stream, output_stream):
    method create_request (line 29) | def create_request(self, request_type, parameters):
    method shutdown (line 44) | def shutdown(self):

FILE: mssqlscripter/tests/test_argparser.py
  class TestParser (line 11) | class TestParser(unittest.TestCase):
    method test_connection_string_builder (line 13) | def test_connection_string_builder(self):
    method test_connection_string_with_environment (line 34) | def test_connection_string_with_environment(self):

FILE: mssqlscripter/tests/test_sqltoolsclient.py
  class SqlToolsClientTest (line 13) | class SqlToolsClientTest(unittest.TestCase):
    method test_sql_tools_client_initialization (line 18) | def test_sql_tools_client_initialization(self):

FILE: utility.py
  function exec_command (line 22) | def exec_command(command, directory, continue_on_error=True):
  function cleaun_up_egg_info_sub_directories (line 37) | def cleaun_up_egg_info_sub_directories(directory):
  function clean_up (line 43) | def clean_up(directory):
  function get_current_platform (line 54) | def get_current_platform():
Condensed preview — 50 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (889K chars).
[
  {
    "path": ".bumpversion.cfg",
    "chars": 366,
    "preview": "[bumpversion]\ncurrent_version = 1.0.0a23\nparse = (?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)((?P<release>[a-z]+))(?P<"
  },
  {
    "path": ".gitattributes",
    "chars": 118,
    "preview": "# baseline files need to retain crlf for cross plat tests that simulate sql tools service response\n*.txt text eol=crlf"
  },
  {
    "path": ".gitignore",
    "chars": 1517,
    "preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
  },
  {
    "path": ".travis.yml",
    "chars": 773,
    "preview": "sudo: True\nlanguage: python\nmatrix:\n  include:\n    - os: osx\n      language: generic\n      env: TOXENV=py36\n    - os: os"
  },
  {
    "path": "LICENSE.txt",
    "chars": 1135,
    "preview": "Microsoft SQL Scripter\r\n\r\nCopyright (c) Microsoft Corporation\r\n\r\nAll rights reserved. \r\n\r\nMIT License\r\n\r\nPermission is h"
  },
  {
    "path": "MANIFEST.in",
    "chars": 132,
    "preview": "include LICENSE.txt\ninclude README.rst\ninclude mssqlscripter/mssqltoolsservice/bin/*\ninclude mssqlscripter/mssqltoolsser"
  },
  {
    "path": "README.rst",
    "chars": 3384,
    "preview": ".. image:: https://travis-ci.org/Microsoft/mssql-scripter.svg?branch=dev\n    :target: https://travis-ci.org/Microsoft/ms"
  },
  {
    "path": "SECURITY.md",
    "chars": 2757,
    "preview": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products an"
  },
  {
    "path": "appveyor.yml",
    "chars": 476,
    "preview": "environment:\n\n  matrix:\n    - TOXENV: \"py27\"\n      PYTHON: \"C:\\\\Python27\"\n    - TOXENV: \"py34\"\n      PYTHON: \"C:\\\\Python"
  },
  {
    "path": "build.py",
    "chars": 6407,
    "preview": "#!/usr/bin/env python\n\n# --------------------------------------------------------------------------------------------\n# "
  },
  {
    "path": "dev_requirements.txt",
    "chars": 289,
    "preview": "enum34 >= 1.1.6\r\nfuture >= 0.16.0\r\nsetuptools >= 36.0.1\r\nrequests >= 2.13.0\r\nwheel >= 0.29.0\r\ncoverage >= 4.3.4\r\ntwine >"
  },
  {
    "path": "dev_setup.py",
    "chars": 937,
    "preview": "#!/usr/bin/env python\n\n\n# --------------------------------------------------------------------------------------------\n#"
  },
  {
    "path": "doc/architecture_guide.md",
    "chars": 3136,
    "preview": "# mssql-scripter Architecture\n\nThe three core components of mssql-scripter are:\n* Python Client\n* Scripting Service\n* Sq"
  },
  {
    "path": "doc/development_guide.md",
    "chars": 5523,
    "preview": "Development Guide\n=================\n\n## Table of Contents\n1. [Preparing your machine](#Preparing_machine)\n1. [Environmen"
  },
  {
    "path": "doc/documentation_page.md",
    "chars": 5512,
    "preview": "# Get Started with mssql-scripter\n\nmssql-scripter is the command line equivalent of the widely used Generate Scripts Wiz"
  },
  {
    "path": "doc/installation_guide.md",
    "chars": 6123,
    "preview": "# Installation Guide\n\n## Quick Start\nmssql-scripter is installed via pip.  If you know pip, you can install mssql-script"
  },
  {
    "path": "doc/pypi_release_steps.md",
    "chars": 3505,
    "preview": "PYPI Test mssql-scripter upload\r\n========================================\r\n\r\n### Requirements:\r\n1. Create and Register a"
  },
  {
    "path": "doc/sequence_diagram.puml",
    "chars": 1522,
    "preview": "See http://plantuml.com/sequence-diagram for details on the syntax for creating \nsequence diagrams using plantuml.\n\n@sta"
  },
  {
    "path": "doc/usage_guide.md",
    "chars": 13140,
    "preview": "# Usage Guide\nContents:\n\n[Options](#options)\n\n[Examples](#examples)\n\n[Environment Variables](#environment-variables)\n\n##"
  },
  {
    "path": "doc/virtual_environment_info.md",
    "chars": 1301,
    "preview": "Virtual Environment\n========================================\n\n## What is a virtual environment?\n    - A isolated Python "
  },
  {
    "path": "dos2unix.py",
    "chars": 532,
    "preview": "#!/usr/bin/env python\r\n\"\"\"\\\r\nconvert dos linefeeds (crlf) to unix (lf)\r\nusage: dos2unix.py <input> <output>\r\n\"\"\"\r\n\r\n__ve"
  },
  {
    "path": "mssql-scripter",
    "chars": 628,
    "preview": "#!/bin/bash\n\nSOURCE=\"${BASH_SOURCE[0]}\"\nwhile [ -h \"$SOURCE\" ]; do # resolve $SOURCE until the file is no longer a symli"
  },
  {
    "path": "mssql-scripter.bat",
    "chars": 218,
    "preview": "@echo off\nsetlocal\nREM Set the python io encoding to UTF-8 by default if not set.\nIF \"%PYTHONIOENCODING%\"==\"\" (\n    SET "
  },
  {
    "path": "mssql-scripter.pyproj",
    "chars": 4402,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": "mssql-scripter.sln",
    "chars": 934,
    "preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.26730.0\nMini"
  },
  {
    "path": "mssqlscripter/__init__.py",
    "chars": 372,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/__main__.py",
    "chars": 694,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/argparser.py",
    "chars": 17029,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/README.md",
    "chars": 67,
    "preview": "Microsoft XPlat CLI common module\n================================="
  },
  {
    "path": "mssqlscripter/jsonrpc/__init__.py",
    "chars": 345,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/contracts/__init__.py",
    "chars": 878,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/contracts/scriptingservice.py",
    "chars": 12217,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/contracts/tests/scripting_baselines/adventureworks2014_baseline.txt",
    "chars": 617588,
    "preview": "Content-Length: 90\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":\"1\",\"result\":{\"operationId\":\"bf7515c7-2a05-4e96-b44d-8243413be398\"}}Content-"
  },
  {
    "path": "mssqlscripter/jsonrpc/contracts/tests/test_scripting.py",
    "chars": 16489,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/jsonrpcclient.py",
    "chars": 15783,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/tests/test_jsonrpc.py",
    "chars": 9072,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/jsonrpc/tests/test_jsonrpcclient.py",
    "chars": 11551,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/main.py",
    "chars": 4924,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/mssqltoolsservice/__init__.py",
    "chars": 1590,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/mssqltoolsservice/external.py",
    "chars": 2477,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/scriptercallbacks.py",
    "chars": 2244,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/scripterlogging.py",
    "chars": 1375,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/sqltoolsclient.py",
    "chars": 1619,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/temp.txt",
    "chars": 7129,
    "preview": "usage: mssql-scripter [-h] [--connection-string  | -S ] [-d] [-U] [-P] [-f]\r\n                      [--file-per-object] ["
  },
  {
    "path": "mssqlscripter/tests/test_argparser.py",
    "chars": 2639,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "mssqlscripter/tests/test_sqltoolsclient.py",
    "chars": 2034,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  },
  {
    "path": "setup.cfg",
    "chars": 714,
    "preview": "[bdist_wheel]\nuniversal =1\n\n[metadata]\ndescription-file = README.rst\nlicense_file = LICENSE.txt\n\n[flake8]\nignore =\n    #"
  },
  {
    "path": "setup.py",
    "chars": 1808,
    "preview": "#!/usr/bin/env python\n\n# --------------------------------------------------------------------------------------------\n# "
  },
  {
    "path": "tox.ini",
    "chars": 643,
    "preview": "[tox]\n# It is recommended to install both python 2.7 and python 3.6, but we \n# won't fail the test run if only one is fo"
  },
  {
    "path": "utility.py",
    "chars": 2068,
    "preview": "# --------------------------------------------------------------------------------------------\n# Copyright (c) Microsoft"
  }
]

About this extraction

This page contains the full source code of the Microsoft/mssql-scripter GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 50 files (779.4 KB), approximately 212.8k tokens, and a symbol index with 126 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!